2016-08-26 4 views
0

나는 AS와 함께 작업 중이므로 영역에 x86_64 패키지가 필요하지 않습니다. x86_64 패키지는 다른 libs에서 몇 가지 문제를 일으 킵니다. 패키지를 제거하는 방법?영역에서 x86_64 패키지 제거

enter image description here

+0

AS는 무엇입니까? 또한 x86_64를 제거하는 대신 문제를 게시하는 것이 좋습니다 – anthonymonori

답변

1

글쎄, 당신은 아키텍처 폴더 중 하나를 제거 할 수 있지만 제거하는 아키텍처에서 작동하지 않습니다 문제의 라이브러리 (이 영역의이 사건을) 즉, 명심하십시오.

솔직히 말해서 간단히 제거 할 수는 있지만 위에서 언급 한 것처럼 좋지는 않습니다.

당신은/포함 splitting 불리는 기술에 의해 빌드에서 다른 아키텍처를 제외 할 수

android { 
    // Rest of Gradle file 
     splits { 
      abi { 
      enable true 
      reset() 
      include 'armeabi', 'armeabi-v7a', 'arm64_v8a', 'mips', 'x86' 
      universalApk true 
     } 
    } 
} 

//Ensures architecture specific APKs have a higher version code 
//(otherwise an x86 build would end up using the arm build, which x86 devices can run) 
ext.versionCodes = [armeabi:1, 'armeabi-v7a':2, 'arm64-v8a':3, 'mips':4, x86:5] 

android.applicationVariants.all { variant -> 
    // assign different version code for each output 
    variant.outputs.each { output -> 
     int abiVersionCode = project.ext.versionCodes.get(output.getFilter(OutputFile.ABI)) ?: 0 
     output.versionCodeOverride = (abiVersionCode * 10000) + android.defaultConfig.versionCode 
    } 
} 
+0

대단히 감사합니다. 해결책은 없지만 다른 장치 용 apk를 많이 만들 것입니다. 이제 내 방식은 abi를 제한하기 위해 abiFilters를 사용하고 있습니다. ndk { abiFilters "armeabi", "armeabi-v7a", "x86" } –

1

abiFilters 좋은 솔루션이 될 것입니다. 이 메소드는 abi를 제한하고 apk를 빌드 할 때 지정된 abi 만 추가합니다.

defaultConfig { 
    applicationId "com.example.app" 
    minSdkVersion 16 
    targetSdkVersion 24 
    versionCode 1 
    versionName "1.0" 
    ndk { 
     abiFilters "armeabi", "armeabi-v7a", "x86" 
    } 
// ... 
} 

이것은 지정된 아치 폴더 만 사용되며 나머지는 삭제 될 수 있음을 의미합니다.

+0

스크린 샷 대신 형식이 지정된 코드를 게시하십시오. – anthonymonori