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

时间:2019-04-17 08:11:58

标签: android gradle kotlin flutter build.gradle

我在尝试构建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://stackoverflow.com/questions/52521302/how-to-solve-program-type-already-present-com-google-common-util-concurrent-lis
    implementation 'com.google.guava:guava:27.0.1-android'
}

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

顶级build.grade:

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 :(得分: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

答案 1 :(得分:0)

This解决方案非常适合我,因此无需更改alpha和beta版本或更新依赖版本。