简体   繁体   English

BuildConfig多个dex文件错误(3.0.1版)

[英]BuildConfig multiple dex files error (Gradle 3.0.1)

My project has multiple modules and one module has a requirement to keep the package name same as "app" module. 我的项目有多个模块,一个模块要求软件包名称与“ app”模块相同。 When I compile the project and run it runs just fine but when I am trying to build release APK it is showing below error : 当我编译项目并运行它时,它运行得很好,但是当我尝试构建发行版APK时,它显示以下错误:

Error:Error converting bytecode to dex:
Cause: com.android.dex.DexException: Multiple dex files define Lcom/sumit/example/BuildConfig;
Error:com.android.dex.DexException: Multiple dex files define Lcom/sumit/example/BuildConfig;
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:transformDexArchiveWithDexMergerForRelease'.
> com.android.build.api.transform.TransformException: com.android.dex.DexException: Multiple dex files define Lcom/sumit/example/BuildConfig;
Information:BUILD FAILED in 1m 42s

I have enabled multidex support in gradle file and also included multidex install function inside main application class. 我已经在gradle文件中启用了multidex支持,并且还在主应用程序类中包含了multidex安装功能。

Only thing that I can think of is this happens due to presence of multiple BuildConfig class having same package name as other module shares the package name as app module. 我唯一能想到的是,由于存在多个BuildConfig类(与其他模块具有相同的程序包名称),因此共享了与应用程序模块相同的程序包名称。

Any help on how to resolve this issue ? 对如何解决此问题有帮助吗? Can we solve this keeping two module share one package name ? 我们可以解决这个使两个模块共享一个包名称的问题吗?

try add packageBuildConfig(false) in your library module: 尝试在您的库模块中添加packageBuildConfig(false)

android{
  ...
  packageBuildConfig(false)
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Android测试构建错误:多个dex文件定义了Landroid / support / test / BuildConfig - Android tests build error: Multiple dex files define Landroid/support/test/BuildConfig 生成错误。 gradle(定义了多个dex文件) - Error in the build. gradle ( Multiple dex files define ) 多个dex文件定义<my package> /BuildConfig,找不到原因: - Multiple dex files define <my package>/BuildConfig, can't find the cause: Gradle 构建错误将字节码转换为 dex 时出错:原因:com.android.dex.DexException:多个 dex 文件定义 Landroid/arch/lifecycle/liveData$1 - Gradle build error Error converting bytecode to dex:Cause: com.android.dex.DexException:Multiple dex files define Landroid/arch/lifecycle/liveData$1 由于多个dex文件,Android Gradle构建失败 - Android Gradle build fails due to Multiple dex files Android Eclipse多个Dex文件错误 - Android Eclipse Multiple Dex Files Error Crashlytics多个dex文件定义错误 - Crashlytics Multiple dex files define error TransformException多个dex文件 - TransformException multiple dex files 无法执行dex:多个dex文件已定义 - Unable to execute dex: Multiple dex files define 将字节码转换为dex时出错:原因:com.android.dex.DexException:多个dex文件定义了Lcom / RNFetchBlob / RNFetchBlobConst; - Error converting bytecode to dex: Cause: com.android.dex.DexException: Multiple dex files define Lcom/RNFetchBlob/RNFetchBlobConst;
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM