我对我的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">