"abi"로 "스플릿"을 사용하고 싶지만 릴리즈 빌드에만 사용하고 싶습니다. 이것이 가능한가? ext 변수와 변수를 "def"로 사용해보십시오. 기본적으로 false로 설정되어 있습니다. 이 변수는 releaseWithLog (및 릴리스)의 buildTypes에서 true로 설정됩니다.Android Gradle - 출시 전용으로 분할을 사용하고 있습니까?
하지만 Gradle이 어떻게 작동하는지 알지 못합니다. "debug", "releaseWithLog"및 "release"에 테스트 메시지를 추가하고 빌드를 실행하면 모든 메시지가 출력되므로, 이것이 나를 확인합니다. 그 변수는 "splitsEnabled"가 true로 설정되어 있지만 디버그 용으로 빌드됩니다. 그리고 디버그에는 값 "false"가 필요합니다. 따라서 디버그 용 분할을 사용하지 마십시오. 필드 안드로이드 Studio에서 Gradle을 작업에 대한 :
apply plugin: 'com.android.application'
android {
compileSdkVersion 19
buildToolsVersion '20.0.0'
ext {
splitsEnabled = false
}
defaultConfig {
...
}
buildTypes {
debug {
...
}
releaseWithLog {
...
splitsEnabled = true
}
release.initWith(releaseWithLog)
release {
...
}
}
...
splits {
abi {
println(splitsEnabled)
enable splitsEnabled
reset()
include 'x86', 'armeabi-v7a', 'armeabi'
exclude 'x86_64', 'mips64', 'arm64-v8a', 'mips'
universalApk true
}
}
...
는'buildTypes', 나는 분할이 유형 단위로 할 수없는 것으로 생각하지만, 내가 잘못 입증 될 수있을 것입니다. 그러나'enable splitsEnabled'는 빌드 타입이 선택되기 전에 잘 실행된다는 것을 명심하십시오. 'build.gradle'에있는 문장들은 대부분 객체 모델을 구축하고 있습니다. 이것은 해석 된 스크립트가 아닙니다. 객체 모델이 빌드 된 후에 만 Gradle은 실행중인 작업에 필요한 빌드 유형을 파악하기 시작합니다. – CommonsWare
나는 또한 관심이 있어요 - 빌드 시간을 절약하고 디버그에서 하나의 스플릿을 만드는 것을 좋아할 것입니다. –
이 문제를 해결하기 위해 ABI 빌드를 수행하는 옛 방식으로 되돌아갔습니다! https://twitter.com/silentnuke/status/619501266646003713 –