DexException多个dex文件在Android中定义

DexException多个dex文件在Android中定义,第1张

概述在我的android项目中,我使用了两个JAXB库jaxp-ri(用于XMLGregorianCalendarImpl类)和jaxb-api(用于对象到xml转换).我在build.gradle文件中添加了这两个库.但是当我构建我的项目时,我得到了下面提到的错误Error:Errorconvertingbytecodetodex:Cause:com.android.dex.DexEx

在我的android项目中,我使用了两个JAXB库jaxp-ri(用于XMLGregorianCalendarImpl类)和jaxb-API(用于对象到xml转换).我在build.gradle文件中添加了这两个库.

但是当我构建我的项目时,我得到了下面提到的错误

Error:Error converting bytecode to dex:Cause: com.androID.dex.DexException: Multiple dex files define Ljavax/xml/stream/events/namespace;Error:com.androID.dex.DexException: Multiple dex files define Ljavax/xml/stream/events/namespace;Error:  at com.androID.dx.merge.DexMerger.readSortableTypes(DexMerger.java:661)Error:  at com.androID.dx.merge.DexMerger.getSortedTypes(DexMerger.java:616)Error:  at com.androID.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:598)Error:  at com.androID.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)Error:  at com.androID.dx.merge.DexMerger.merge(DexMerger.java:198)Error:  at com.androID.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:61)Error:  at com.androID.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:36)Error:  at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)Error:  at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)Error:  at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)Error:  at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)Error:  at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)Error:Execution Failed for task ':app:transformDexArchiveWithDexMergerForDeBUG'.> com.androID.build.API.transform.transformException: com.androID.dex.DexException: Multiple dex files define Ljavax/xml/stream/events/namespace;

Build.gradle文件

dependencIEs {    implementation filetree(include: ['*.jar'], dir: 'libs')    implementation 'com.androID.support:appcompat-v7:26.0.0-beta1'    implementation 'com.androID.support.constraint:constraint-layout:1.0.2'    testImplementation 'junit:junit:4.12'    androIDTestImplementation 'com.androID.support.test:runner:1.0.1'    androIDTestImplementation 'com.androID.support.test.espresso:espresso-core:3.0.1'    compile group: 'com.sun.org.apache', name: 'jaxp-ri', version: '1.4'    compile group: 'javax.xml.bind', name: 'jaxb-API', version: '2.1'}

任何人都可以帮忙吗?我怎么解决这个问题?

编辑

完成build.gradle文件

androID {    compileSdkVersion 26    defaultConfig {        applicationID "in.cdac.xmlparsing"        minSdkVersion 15        targetSdkVersion 26        versionCode 1        versionname "1.0"        multIDexEnabled true        testInstrumentationRunner "androID.support.test.runner.AndroIDJUnitRunner"    }    buildTypes {        release {            MinifyEnabled false            proguardfiles getDefaultProguardfile('proguard-androID.txt'), 'proguard-rules.pro'        }    }}dependencIEs {    implementation filetree(include: ['*.jar'], dir: 'libs')    implementation 'com.androID.support:appcompat-v7:26.0.0-beta1'    implementation 'com.androID.support.constraint:constraint-layout:1.0.2'    testImplementation 'junit:junit:4.12'    androIDTestImplementation 'com.androID.support.test:runner:1.0.1'    androIDTestImplementation 'com.androID.support.test.espresso:espresso-core:3.0.1'    compile group: 'com.sun.org.apache', name: 'jaxp-ri', version: '1.4'    compile group: 'javax.xml.bind', name: 'jaxb-API', version: '2.1'}

解决方法:

通过在模块级build.gradle中简单地声明multIDexEnabled为true,仅当您的minSdkVersion设置为21或更高时才有效.

如果你的minSdkVersion低于21,除了上面的步骤,你需要将multIDex支持库作为依赖

dependencIEs {  compile 'com.androID.support:multIDex:1.0.1'}

你可以在这里阅读详细信息 – https://developer.android.com/studio/build/multidex.html

总结

以上是内存溢出为你收集整理的DexException多个dex文件在Android中定义全部内容,希望文章能够帮你解决DexException多个dex文件在Android中定义所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1111490.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存