4

My project has multiple modules and one module has a requirement to keep the package name same as "app" module. 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 :

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.

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.

Any help on how to resolve this issue ? Can we solve this keeping two module share one package name ?

Sumit Sahoo
  • 2,949
  • 1
  • 25
  • 37

1 Answers1

1

try add packageBuildConfig(false) in your library module:

android{
  ...
  packageBuildConfig(false)
}
DouO
  • 4,914
  • 1
  • 20
  • 29