错误:com.android.builder.dexing.DexArchiveBuilderException:无法处理guava-21.0.jar Android 3.1开发者频道


69

在中更新依赖项版本后AndroidStudio3.1,我开始出现以下错误:

    Information:Gradle tasks [:app:assembleDebug]
Error:com.android.builder.dexing.DexArchiveBuilderException: Failed to process C:\Users\Blabla\.gradle\caches\modules-2\files-2.1\com.google.guava\guava\21.0\3a3d111be1be1b745edfa7d91678a12d7ed38709\guava-21.0.jar
Error:com.android.builder.dexing.DexArchiveBuilderException: Error while dexing.
Error:com.android.tools.r8.ApiLevelException: Default interface methods are only supported starting with Android N (--min-api 24): java.util.Collection com.google.common.collect.BiMap.values()
Error:Execution failed for task ':app:transformClassesWithDexBuilderForDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.dexing.DexArchiveBuilderException: com.android.builder.dexing.DexArchiveBuilderException: Failed to process C:\Users\Blabla\.gradle\caches\modules-2\files-2.1\com.google.guava\guava\21.0\3a3d111be1be1b745edfa7d91678a12d7ed38709\guava-21.0.jar
Information:BUILD FAILED in 6s
Information:4 errors
Information:0 warnings
Information:See complete output in console

我已经清理并重建了项目。检查我的"multiDexEnabled true"和'编译'com.android.support:multidex:1.0.2'添加。

我还可以做些什么?

编辑:添加build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    buildToolsVersion '26.0.2'
    defaultConfig {
        applicationId "com.blabla"
        minSdkVersion 19
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    configurations.all {
        resolutionStrategy.force 'com.google.code.findbugs:jsr305:1.3.9'
    }

}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:27.0.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    compile 'com.android.support:multidex:1.0.2'
    compile 'com.android.support:design:27.0.0'
    compile 'com.android.support:cardview-v7:27.0.0'
    compile 'com.jakewharton:butterknife:8.7.0'
    compile 'com.google.code.gson:gson:2.8.0'
    compile 'com.google.guava:guava:21.0'
    compile 'com.microsoft.azure:azure-mobile-android:3.2.0@aar'
    compile 'com.microsoft.azure:notification-hubs-android-sdk:0.4@aar'
    compile 'com.microsoft.azure:azure-notifications-handler:1.0.1@aar'
    compile 'com.squareup.okhttp:okhttp:2.5.0'
    compile 'com.google.firebase:firebase-core:11.4.2'
    compile 'com.google.firebase:firebase-crash:11.4.2'
    compile 'com.google.firebase:firebase-auth:11.4.2'
    compile 'com.google.firebase:firebase-database:11.4.2'
    compile 'com.google.firebase:firebase-storage:11.4.2'
    testCompile 'junit:junit:4.12'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.7.0'
    compile 'com.google.android.gms:play-services-maps:11.4.2'
    compile 'com.google.android.gms:play-services-location:11.4.2'
    compile 'com.google.maps.android:android-maps-utils:0.5+'
}
apply plugin: 'com.google.gms.google-services'

发布此消息后,我尝试返回到“ com.google.guava:guava:20.0”,它可以这样工作。只有当我更新到21.0时,才会出现错误。
阿塔克

发表您的gradle
Vishal Yadav

向您展示build.gradle
IntelliJ Amiya

build.gradle
Atak

1
Guava 21.0需要Java8。Guava 21.0可能不兼容
IntelliJ Amiya

Answers:


95

我在本机项目中遇到了同样的问题,

以下几行对我有用,

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
} 

8
这应该是正确的答案。该错误与您要使用的Java的更高版本的依赖项有关。因此,请使用最新版本(而不是相反)来编译项目,并向项目中添加混乱的配置。
rmpt

我无法使用它,因为我compile无法直接访问它,因此无法将其附加到任务中。对我有用。
达卡,

1
应该在哪个文件中添加?
杰弗里·范·罗瑟姆

3
弄清楚了,它起作用了,谢谢。您可以在此处进行更改:build.gradle(模块:app),然后在android属性中进行更改。
Jeffrey van Rossum

生成时只会导致NullPointerException。
K。。

41

更新您的Guava版本

Guava 21仅适用于Java 8。

将gradle更新27.0.1-android为与Android兼容的Guava版本:

Gradle 4.6+:

dependencies {
  implementation 'com.google.guava:guava:27.0.1-android'
}

先前的Gradle版本:

dependencies {
  compile 'com.google.guava:guava:27.0.1-android'
}

2
而已。但是我还必须添加以下内容来解决添加依赖项后的另一个错误: android { configurations.all { resolutionStrategy.force 'com.google.code.findbugs:jsr305:1.3.9' } }
Atak

@Atak您在哪里添加了此内容?
Crime_Master_GoGo

应用程序build.gradle的@Crime_Master_GoGo“ android {}”部分。添加它为您解答
-Atak

非常感谢。在这个问题上浪费了时间。这对我来说很好:)
Pooja Rajendran C

9

我遇到了同样的问题,并解决了清理项目并重建它的问题。

在Android Studio中,转到Build-> Clean Project,然后执行Build-> Rebuild Project

希望能帮助到你


1
升级Kotlin后,相同的解决方案对我有用。
timv

4

当我切换到OkHttp 4.x时,我遇到了类似的情况。原来,我不得不在运行配置中禁用方法分析: Edit Configurations-> app-> Profilingtab-> uncheck Enable advanced profiling。它解决了我的问题,但是我现在无法在较旧的设备上使用配置文件。


0

就我而言,出现错误是因为在将构建变体设置为发布时单击了“调试”应用程序按钮。当我将构建变体更改为调试时,然后再次单击“调试”按钮时,错误消失了。我希望这可以帮助别人。


0

我有同样的问题,我的问题是依赖冲突。我通过gradle依赖树搜索了冲突:

gradlew app:dependencies

然后,我排除了冲突库的模块(例如org.json:json):

api ('<conflicting-library>',{
     exclude group:'org.json', module:'json'
})
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.