Android Studio APK构建错误 - 多个dex文件定义Landroid / support / v4 /

时间:2017-12-01 15:59:38

标签: android

//错误:任务':app:transformClassesWithDexForDebug'执行失败。

  

com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:com.android.dex.DexException:多个dex文件定义Landroid /支持/ V4 / accessibilityservice / AccessibilityServiceInfoCompat;

  apply plugin: 'com.android.application'

      android {
compileSdkVersion 27
buildToolsVersion "27.0.1"
defaultConfig {
    applicationId "com.cpsraozan.admission"
    minSdkVersion 15
    targetSdkVersion 27
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 
 'proguard-rules.pro'
    }
    }

     }

       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.+'
     compile 'com.android.support.constraint:constraint-layout:1.0.2'
      testCompile 'junit:junit:4.12'
      compile 'com.google.firebase:firebase-messaging:9.4.0'
                compile 'com.google.firebase:firebase-core:9.4.0'

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

2 个答案:

答案 0 :(得分:0)

转到 build.gradle 文件,并在defaultConfig上添加multidexEnable true。

android {

    compileSdkVersion 26

    defaultConfig {
       targetSdkVersion ..
       multiDexEnabled true  //add this
   }
}

了解更多信息See this

答案 1 :(得分:0)

这有点不直接。很可能您可能添加了新的依赖项或更新了依赖项,这会导致将同一个库的多个版本添加为依赖项。

  1. 检查Android工作室是否突出显示任何行,尤其是在Gradle文件中。
  2. 使用命令

    运行Gradle正在处理的所有依赖项的转储

    ./gradlew -q dependencies app:dependencies

  3. 检查冲突的依赖关系并修复它们。

    今天早上我遇到了同样的错误,并且对 multiDexEnabled 的要求没有意义。这仅适用于具有超过64k方法的大型项目。我在SO的某个地方找到了这个解决方案,但再也找不到了。所以转发答案。