如何解决com.android.builder.dexing.DexArchiveBuilderException问题?

3
我尝试构建Flutter应用程序时遇到了这个异常,尝试了各种解决方案但都没有帮助我。我正在寻找解决方案,因为解决这个问题需要花费很多时间和精力。
app/build.grade:
   defaultConfig {
        applicationId "com.quickcarl.client"
        minSdkVersion 21
        targetSdkVersion 27
        multiDexEnabled true
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

        // needed to fix release build crash
        // ndk {
        //     abiFilters 'armeabi-v7a'
        // }
    }

    signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['storePassword']
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
        }
    }

    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
        debug {
            // applicationIdSuffix ".debug"
            signingConfig signingConfigs.debug
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    buildToolsVersion '28.0.3'
}

flutter {
    source '../..'
}

dependencies {
    implementation 'androidx.multidex:multidex:2.0.0'
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation 'androidx.legacy:legacy-support-v4:1.0.0-beta01'
    implementation 'androidx.appcompat:appcompat:1.0.0-beta01'
    implementation 'com.google.android.material:material:1.0.0-beta01'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'

    // Twilio Video library resides on jcenter
    implementation 'com.twilio:video-android:1.1.0'
    // required for twilio VideoActivity
    implementation 'com.koushikdutta.ion:ion:2.1.7'
    // firebase analytics
    implementation 'com.google.firebase:firebase-core:16.0.7'
    // firebase authentication
    implementation 'com.google.firebase:firebase-auth:16.0.5'
    // firebase cloud messaging
    implementation 'com.google.firebase:firebase-messaging:17.3.3'

    // required to resolve this issue:
    // https://dev59.com/DFQK5IYBdhLWcg3wEr4X
    implementation 'com.google.guava:guava:27.0.1-android'
}

apply plugin: 'com.google.gms.google-services'

顶级 build.gradle 文件:

dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.2.0'
    }

当前设置已经启用了multidexenabled=trueimplementation 'com.google.guava:guava:27.0.1-android',这似乎是其他帖子中推荐的解决此问题的方案,但对于我来说并没有解决这个问题。

我不断收到异常,指向jetified-play-services-measurement-base-16.3.0.aar依赖项,对此我毫无头绪。正在寻找解决此异常的方法。

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 /Users/<username>/.gradle/caches/transforms-1/files-1.1/jetified-play-services-measurement-base-16.3.0.aar/ad108baaea5302bc328d2bf417082421/jars/classes.jar
2个回答

0

将库中所有的 alphabeta 版本替换为以下稳定版本:

implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'com.google.android.material:material:1.0.0'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' 

将依赖项更改为以下最新版本:

com.google.firebase:firebase-auth:16.2.1
com.google.firebase:firebase-core:16.0.8
com.google.firebase:firebase-messaging:17.6.0

好的,在进行以上更改后有一些进展。虽然现在,我遇到了这个异常:jetified-play-services-measurement-sdk-16.4.0.aar/c95d832adb9327e41d22114a667fba52/jars/classes.jar。原始异常是:jetified-play-services-measurement-base-16.3.0.aar/ad108baaea5302bc328d2bf417082421/jars/classes.jar - Darshan
同样地,检查所有依赖项、插件是否具有最新版本。此外,请确保您已将 google() 放置在存储库块的第一位。 - Kruti Parekh

0

这个解决方案对我来说完美地奏效,所以我不必更改alpha和beta版本或更新依赖版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接