android - 已启用 Multidex - 仍然无法合并 dex

标签 android android-studio gradle kotlin android-multidex

这是我的build.gradle

android {
compileSdkVersion 27
defaultConfig {
    applicationId "xxxx.xxxx.xxxx"
    minSdkVersion 21
    targetSdkVersion 27
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    multiDexEnabled true
}

这是我的 Manifest.xml

 <application
    android:name="android.support.multidex.MultiDexApplication"
.../>

这些是我的依赖

dependencies {
    implementation 'com.android.support:multidex:1.0.3'
    implementation fileTree(include: ['*.jar'], dir: 'libs')


    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    //noinspection GradleCompatible
    implementation 'com.android.support:recyclerview-v7:27.1.0'

    implementation 'com.google.firebase:firebase-messaging:11.8.0'
    implementation 'com.google.firebase:firebase-crash:11.8.0'
    implementation 'com.google.android.gms:play-services-maps:11.8.0'
    implementation 'com.google.android.gms:play-services-ads:11.8.0'
    implementation "com.google.android.gms:play-services-location:11.8.0"
    implementation 'com.google.maps.android:android-maps-utils:0.4.4'
    implementation 'com.google.code.gson:gson:2.8.2'

    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation "org.jetbrains.anko:anko:0.10.4"
    implementation "org.jetbrains.anko:anko-design:0.10.4"

    //    CircleImage
    implementation 'de.hdodenhof:circleimageview:2.1.0'
    //    Glide
    implementation 'com.github.bumptech.glide:glide:4.5.0'
    //DateTimePicker
    implementation 'com.wdullaer:materialdatetimepicker:3.4.0'

    implementation 'org.ocpsoft.prettytime:prettytime:4.0.1.Final'


    implementation 'com.github.kittinunf.fuel:fuel-android:1.12.0'


    implementation 'com.seatgeek:placesautocomplete:0.3-SNAPSHOT'



    implementation project(path: ':regservice')
}

gradle 构建仍然失败,因为

Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'. java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex

请问有没有大佬知道这是为什么? 我已经解决这个问题 2 天了,但我仍然没有解决方案

 Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63)
    at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)
    at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
    at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:124)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:80)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:105)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:99)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:625)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:580)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:99)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)

最佳答案

像这样创建应用程序类,

  public class MyApplication extends Application {
  @Override
   protected void attachBaseContext(Context base) {
      super.attachBaseContext(base);
      MultiDex.install(this);
   }
  }

使用“MyApplication”代替 android.support.multidex.MultiDexApplication

<application
android:name=".MyApplication"
 />

关于android - 已启用 Multidex - 仍然无法合并 dex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49233510/

相关文章:

java - 在 Android 中实现 AES 加密

android - HTTP 状态 405 - 方法不允许(jax-rs 服务)

java - Gradle 无法应用插件 FatJar

android studio 0.5.2 : could not resolve com. android.tools.build :gradle:0. 9.+

java - 谷歌应用程序引擎和Android?

android - 为什么不推荐使用 TabListener?

android - java.lang.IllegalStateException : sensorManager. getDefaultSensor(sensorType) 在 Flutter 中不能为空

android - 错误 :Unable to obtain debug bridge in android studio

安卓工作室 0.8.2 : project using an sdk add-on which provides a jar library

java - 没有名为 EntityManager 的持久性提供程序