构建失败:无法处理 jetified-Android Jetpack

问题描述 投票:0回答:0

我正在将现有项目迁移到 AndroidX,以使用 Android Jetpack。

每次项目尝试构建时,都会出现以下错误之一:

com.android.builder.dexing.DexArchiveBuilderException: Failed to process C:\Users\bart_\.gradle\caches\transforms-1\files-1.1\jetified-library- 1.1.5.aar\7a47fc14703e5762773e6138584ec84b\jars\classes.jar  
com.android.builder.dexing.DexArchiveBuilderException: Failed to process C:\Users\bart_\.gradle\caches\transforms-1\files-1.1\jetified-firebase-auth-16.0.1.aar\df2675f40f2b068bcef05b3b341f23a1\jars\classes.jar   
com.android.builder.dexing.DexArchiveBuilderException: Failed to process C:\Users\bart_\.gradle\caches\transforms-1\files-1.1\jetified-play-services-base-15.0.1.aar\0070dfb193d2debc28e0cb79bca3f347\jars\classes.jar  
com.android.builder.dexing.DexArchiveBuilderException: Failed to process C:\Users\bart_\.gradle\caches\transforms-1\files-1.1\picasso-2.5.2.jar\d697c054df8abcaeeeae04aefcec90be\jetified-picasso-2.5.2.jar 
com.android.builder.dexing.DexArchiveBuilderException: Failed to process C:\Users\bart_\.gradle\caches\transforms-1\files-1.1\jetified-answers-1.4.2.aar\f0a1ca4d891a55f78bfc3315c42efc82\jars\classes.jar  
com.android.builder.dexing.DexArchiveBuilderException: Failed to process C:\Users\bart_\.gradle\caches\transforms-1\files-1.1\jetified-firebase-common-16.0.0.aar\2fa56a295c036caf1e4fcc3cad6d7a0b\jars\classes.jar 
com.android.builder.dexing.DexArchiveBuilderException: Failed to process C:\Users\bart_\.gradle\caches\modules-2\files-2.1\io.grpc\grpc-okhttp\1.8.0\eb42f934d9682164ab7295135149d4001fc97372\grpc-okhttp-1.8.0.jar 
com.android.builder.dexing.DexArchiveBuilderException: Failed to process C:\Users\bart_\.gradle\caches\transforms-1\files-1.1\jetified-firebase-analytics-impl-16.0.0.aar\d336d833e904ec6a2cb5711741e0e7dc\jars\classes.jar 

(列表可能会更长,这取决于我尝试了多少构建。)

完整错误:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithDexBuilderForDebug'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:103)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:73)
at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
at com.android.tools.r8.ir.conversion.IRConverter.lambda$convertClassesToDex$2(IRConverter.java:332)
at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:117)
at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:38)
at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:77)
at com.google.common.util.concurrent.MoreExecutors$DirectExecutorService.execute(MoreExecutors.java:260)
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
at com.google.common.util.concurrent.AbstractListeningExecutorService.submit(AbstractListeningExecutorService.java:66)
at com.google.common.util.concurrent.AbstractListeningExecutorService.submit(AbstractListeningExecutorService.java:36)
at com.android.tools.r8.ir.conversion.IRConverter.convertClassesToDex(IRConverter.java:330)
at com.android.tools.r8.ir.conversion.IRConverter.convertToDex(IRConverter.java:245)
at com.android.tools.r8.D8.optimize(D8.java:202)
at com.android.tools.r8.D8.run(D8.java:162)
at com.android.tools.r8.D8.lambda$run$1(D8.java:92)
at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:56)
at com.android.tools.r8.utils.ExceptionUtils.withD8CompilationHandler(ExceptionUtils.java:41)
at com.android.tools.r8.D8.run(D8.java:89)
at com.android.builder.dexing.D8DexArchiveBuilder.convert(D8DexArchiveBuilder.java:99)
... 7 more
Suppressed: java.util.concurrent.ExecutionException: java.lang.NullPointerException: entry
    at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:502)
    at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:461)
    at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:83)
    at com.android.tools.r8.utils.ThreadUtils.awaitFutures(ThreadUtils.java:21)
    at com.android.tools.r8.ir.conversion.IRConverter.convertClassesToDex(IRConverter.java:336)
    ... 15 more
[CIRCULAR REFERENCE:java.lang.NullPointerException: entry]

已经完成:

  • 删除 .gradle/caches 中的所有文件
  • 重建/清理项目
  • 整天在 Google/Reddit/StackOverflow 上搜索

gradle.properties:

org.gradle.jvmargs=-Xmx1536m
android.useAndroidX = true
android.enableJetifier = true

顶级构建文件依赖:

dependencies {
    classpath 'com.android.tools.build:gradle:3.2.0-alpha16'
    classpath 'android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-alpha01'
    classpath 'com.google.gms:google-services:4.0.1'
    classpath 'io.fabric.tools:gradle:1.25.4'
}

模块依赖:

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    // AndroidX
    implementation 'androidx.constraintlayout:constraintlayout:1.1.0'
    implementation 'androidx.multidex:multidex:2.0.0'
    implementation 'androidx.appcompat:appcompat:1.0.0-alpha1'
    implementation 'com.google.android.material:material:1.0.0-alpha1'
    implementation 'androidx.drawerlayout:drawerlayout:1.0.0-alpha1'
    implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0-alpha1'
    implementation 'android.arch.navigation:navigation-fragment:1.0.0-alpha01'
    implementation 'android.arch.navigation:navigation-ui:1.0.0-alpha01'

    // Firebase
    implementation 'com.google.firebase:firebase-core:16.0.0'
    implementation 'com.google.firebase:firebase-auth:16.0.1'
    implementation 'com.google.firebase:firebase-crash:16.0.0'
    implementation 'com.crashlytics.sdk.android:crashlytics:2.9.3'
    implementation 'com.google.firebase:firebase-firestore:17.0.1'

    // 3rd Party
    implementation 'com.alexzh:circleimageview:1.1.2@aar'
    implementation 'com.mikhaellopez:circularimageview:2.0.1'
    implementation 'com.github.rey5137:material:1.2.2'
    implementation 'com.makeramen:roundedimageview:2.2.1'
    implementation 'com.squareup.picasso:picasso:2.5.2'
    implementation 'com.nineoldandroids:library:2.4.0'
    implementation 'com.daimajia.slider:library:1.1.5@aar'
    implementation 'com.github.bluejamesbond:textjustify-android:2.1.6'

    // Testing
    androidTestImplementation 'androidx.test:runner:1.1.0-alpha3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha3'
    testImplementation 'junit:junit:4.12'
}
android-studio build.gradle dex android-jetpack androidx
© www.soinside.com 2019 - 2024. All rights reserved.