升级到最新支持库后,Android JACK编译器出错

时间:2016-12-14 13:52:46

标签: android gradle android-support-library android-jack-and-jill

  

- Android Studio 2.2.3(Windows 10 64位)

     

- 构建工具版本25

     

- Android Gradle插件版本2.2.3

升级到最新的支持库(25.1.0从23.4.0开始)和更改编译版本(25从23)后,我收到此错误:

  

错误:com.android.sched.util.config.PropertyIdException:属性'jack.library.import'(在选项中):元素#7:库文件的版本'.. \ app \ build \ intermediates \不再支持转换\ preJackPackagedLibraries \ debug \ jars \ 8000 \ 1f \ classes-1b6639e8217419d056942b0dacd1542739f1709f.jar'。库版本:3.2 - 当前版本:3.3 - 最低兼容版本:3.3   ...   建立失败

有没有人遇到过这个问题?在提到的.jar文件中,我可以找到一些AnimatedVectorDrawble相关文件。我的应用 build.gradle android {     compileSdkVersion 25     buildToolsVersion '25 .0.2'

defaultConfig {
    applicationId "package"
    minSdkVersion 14
    targetSdkVersion 25
    versionCode 111
    versionName "1.1.1"
}

defaultConfig {
    vectorDrawables.useSupportLibrary = true
    jackOptions.enabled = true
}

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

dexOptions {
    maxProcessCount 4
    javaMaxHeapSize "2g"
}

buildTypes {
    release {
        minifyEnabled false
        useProguard false
        shrinkResources false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    debug {
        minifyEnabled false
        useProguard false
        shrinkResources false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        applicationIdSuffix ".dev"
        versionNameSuffix "-DEV"
        ext.enableCrashlytics = false
    }
}

}

1 个答案:

答案 0 :(得分:26)

根据错误消息,启用Jack的构建似乎无法处理更新Gradle构建设置的所有情况。杰克保留了预先编译的东西(preJackPackagedLibraries)的缓存,你改变的东西导致杰克不喜欢那些预编译的材料。理想情况下,构建系统会检测到这种情况并简单地重新编译它,但显然它没有。

清理项目(Build> Clean Project)希望在所有情况下都能解决这个问题。