无法组装android应用程序:多个dex文件定义Landroid/support/coreui/R $字符串;由于gradle

问题描述:

我遇到了与我的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.zipgradle-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; 

我TRIE检查依存关系,以及核心的只有一个版本-ui(support-core-ui:26.0.1)被使用(通过supportv4,recyclerview和vector-drawable)。

我搜索了特定的错误,但找不到如何解决这个问题。

有什么办法解决这个问题?

编辑:(解决)

毕竟,这是不是在所有相关的摇篮。这是由于滑行的一些问题。 The issue is solved by adding @aar to the dependency.

只启用multidex如下:

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"> 
+0

嗨,Multidex被启用,之前工作。 –

+0

只是尝试一次**清除重建 - 运行**您的项目 –

+0

已经做到了。它没有改变任何东西。仍然运行从未停止工作。 –