Android build.gradle問題:t r a n s f o r m C a s s s e s W i t h P e r o w e P e r a c k P a c k agedLibrariesForDebug

2150 ワード

Error:Execution failed for task ':app:transformClassesWithPreJackPackagedLibrariesForDebug'.
> com.android.build.api.transform.TransformException: com.android.jack.api.ConfigNotSupportedException: Jack requires Build Tools 24.0.0 or later

この問題はbuild tools 24.0.0以上が必要であることを示しています.(later-以上、私は英語が下手ですか?)
主に私がAndroid NとJDK 1を使ったからです.8開発、その後android sdk 23、jdk 1を交換した.7この問題が発生しました!だからこの問題を解決してbuild.gradleのjackOptions属性enabled値をfalseに変更すればいい!
    defaultConfig {
        applicationId "id"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0.0"
        jackOptions {
            enabled false
        }
    }

Java 8のサポートは一昨年からAnnotationを研究していたとき、なぜAndroidがJava 8をサポートしていないのか、今でもJava 9がもうすぐ出てくるのかと感慨していました.ついに、AndroidはNバージョンからJava 8のコンパイルをサポートし、GradleファイルでJackコンパイラを使用することを明示的に宣言することを前提としています.このジャックは何だ?簡単に言えば、従来のコンパイルツールチェーンはjavaコードをjavacでコンパイルする.classファイルは、dxでコンパイルされます.dex.つまり味噌紫です.
javac (.java --> .class) --> dx (.class --> .dex)
  Jack        ,               ,        .java      .jack     .dex:
ack (.java --> .jack --> .dex)
   jack     ,gradle     
android {
    ...
    defaultConfig {
        ...
        jackOptions {
            enabled true
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}