更改Gradle文件后发生DexArchiveBuilderException

时间:2018-09-19 20:20:07

标签: android android-manifest

我试图使用一个新的API,但是当我更改依赖项错误时,错误开始逐一出现。

当我添加此行implementation 'com.yandex.android:mapkit:3.0.0'时,此行中断了。implementation 'com.android.support:appcompat-v7:28.0.0-rc02'。 Android Studio建议我添加//noinspection GradleCompatible,所以我添加了。但是现在我的应用程序无法运行。 说:

  

原因:com.android.builder.dexing.DexArchiveBuilderException:   删除时出错。

     

原因:java.lang.ArrayIndexOutOfBoundsException:-2147483648   引起原因:com.android.builder.dexing.DexArchiveBuilderException:   处理失败   /home/melkor/.gradle/caches/transforms-1/files-1.1/runtime-3.0.0.aar/fba329a4af9f160a1109c717ee93ced1/jars/classes.jar

这是我的Android清单

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.example.melkor.testyandex"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
repositories {
    maven {
        url "http://maven.google.com/"
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    //noinspection GradleCompatible
    implementation 'com.android.support:appcompat-v7:28.0.0-rc02'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.yandex.android:mapkit:3.0.0'
}

2 个答案:

答案 0 :(得分:0)

尝试在gradle.properties文件中添加android.enableD8=true

答案 1 :(得分:0)

'com.yandex.android:mapkit:3.0.0'取决于support-compat和support-v4版本27.0.0。因此,问题可能是由于库冲突造成的。尝试使用支持库版本27.0.0代替28.0.0.-rc2

implementation 'com.android.support:appcompat-v7:27.0.0' 

请注意,版本28.0.0.-rc2是发行候选版本,可能会导致某些崩溃。