无法组装安卓应用:多个 dex 文件定义 Landroid/support/coreui/R$string;由于格拉德尔



我对我的Android项目有问题。在将classpath 'com.android.tools.build:gradle:3.0.0-beta2'更新为classpath 'com.android.tools.build:gradle:3.0.0-beta4'和将Gradle包装器从gradle-4.1-rc-1-all.zip更新为gradle-4.1-all.zip

之后,这个问题似乎发生了。

Multidex已启用,并且正在按预期工作。

当我在AVD上运行应用程序时,根本没有问题,但是当尝试assemble时,我有以下输出

AGPBI: {"kind":"error","text":"Error converting bytecode to dex:nCause: com.android.dex.DexException: Multiple dex files define Landroid/support/coreui/R$string;","sources":[{}],"original":"UNEXPECTED TOP-LEVEL EXCEPTION:ncom.android.dex.DexException: Multiple dex files define Landroid/support/coreui/R$string;n","tool":"Dex"}
AGPBI: {"kind":"error","text":"com.android.dex.DexException: Multiple dex files define Landroid/support/coreui/R$string;","sources":[{}]}
AGPBI: {"kind":"error","text":"tat com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:661)","sources":[{}]}
AGPBI: {"kind":"error","text":"tat com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:616)","sources":[{}]}
AGPBI: {"kind":"error","text":"tat com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:598)","sources":[{}]}
AGPBI: {"kind":"error","text":"tat com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)","sources":[{}]}
AGPBI: {"kind":"error","text":"tat com.android.dx.merge.DexMerger.merge(DexMerger.java:198)","sources":[{}]}
AGPBI: {"kind":"error","text":"tat com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:61)","sources":[{}]}
AGPBI: {"kind":"error","text":"tat com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:36)","sources":[{}]}
AGPBI: {"kind":"error","text":"tat java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)","sources":[{}]}
AGPBI: {"kind":"error","text":"tat java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)","sources":[{}]}
AGPBI: {"kind":"error","text":"tat java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)","sources":[{}]}
AGPBI: {"kind":"error","text":"tat java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)","sources":[{}]}
AGPBI: {"kind":"error","text":"tat java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)","sources":[{}]}
:app:transformDexArchiveWithDexMergerForGithubConfigDebug FAILED
:app:transformDexArchiveWithDexMergerForGithubConfigDebug (Thread[Task worker for ':' Thread 2,5,main]) completed. Took 1.204 secs.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:transformDexArchiveWithDexMergerForGithubConfigDebug'.
> com.android.build.api.transform.TransformException: com.android.dex.DexException: Multiple dex files define Landroid/support/coreui/R$string;

i可以检查依赖项,并且使用了一个版本的core-ui(support-core-ui:26.0.1)。

我要搜索特定错误,但找不到解决方案。

有什么方法可以解决此问题?

edit :(已解决)

毕竟,它与Gradle根本没有关系。这是由于滑行的某些问题。通过将@AAR添加到依赖项中来解决该问题。

刚刚启用多透视如下:

android {    
  defaultConfig {
    // Enabling multidex support.
    multiDexEnabled true
  }  
}
dependencies {
   compile 'com.android.support:multidex:1.0.0'
}

创建一个类似这样的类

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

现在在您的清单文件中添加此

<application
    android:name=".Multi_Dex"
    android:allowBackup="true"
    android:icon="@drawable/logo"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

相关内容

最新更新