デバイスを Android O にアップグレードするときに発生する奇妙な通知を調べようとしています。そのため、build.gradle を更新して 26 をコンパイルし、ビルド ツール 26.0.0 と targetSdkVersion.apiLevel = 26 を使用します。
それを行ってビルドしようとするとすぐに、Gradle 3.3 があるため、次のエラーが発生します。
Error:Execution failed for task ':mobile:transformJackWithJackForArmDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.core.JackToolchain$ToolchainException: Jack configuration exception.
Property 'jack.library.import' (in Options): element #7: The version of the library file 'D:\MyApp\mobile\build\intermediates\transforms\preJackPackagedLibraries\arm\debug\jars\8000\1f\classes-44505c402b1b3aca59892e402ff918e0e2aeaf13.jar' is not supported anymore. Library version: 3.3 - Current version: 3.5 - Minimum compatible version: 3.5
そのため、3.5 に更新する必要があります。そうするとすぐに、3.3 に戻す必要があるという次のエラーが表示されます。
Error:(1, 1) A problem occurred evaluating project ':mobile'.
> Failed to apply plugin [class 'com.android.build.gradle.model.AndroidComponentModelPlugin']
> Gradle version 3.3 is required. Current version is 3.5. If using the gradle wrapper, try editing the distributionUrl in D:\MyApp\gradle\wrapper\gradle-wrapper.properties to gradle-3.3-all.zip
私の 3.3 エラーは、実験的な Gradle 0.9.2 を使用しているためだと思います。しかし、これ以外のものを使用するとすぐに、他のエラーのリストが原因でアプリケーションをコンパイルできません。私のお気に入りは「アームのヌル次元。
dependencies {
classpath 'com.android.tools.build:gradle-experimental:0.9.2'
}
私のbuild.gradleバージョン compileSdkVersion = 26 buildToolsVersion = '26.0.0'
defaultConfig {
applicationId = "com.mydomain.myapp"
minSdkVersion.apiLevel = 22
targetSdkVersion.apiLevel = 26
versionCode = 1
versionName = "1.0"
//Added for test
testInstrumentationRunner = "android.support.test.runner.AndroidJUnitRunner"
setProperty("archivesBaseName", "happyApp")
jackOptions {
enabled true
}
注: 私のアプリケーションは NDK を使用しているため、実験的なバージョンの Gradle を使用しています。