无法组装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.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;
我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">
嗨,Multidex被启用,之前工作。 –
只是尝试一次**清除重建 - 运行**您的项目 –
已经做到了。它没有改变任何东西。仍然运行从未停止工作。 –