2017-12-08 11 views
3

私のプロジェクトには複数のモジュールがあり、1つのモジュールにはパッケージ名を "app"モジュールと同じにする必要があります。私はプロジェクトをコンパイルして実行するとうまくそれを実行しますが、私はリリースAPKを構築しようとしているときには、エラーの下に表示されています。私はGradleのファイルにmultidexサポートを有効にしてもmultidexメインアプリケーション内の機能をインストールする含まれているBuildConfig複数のdexファイルエラー(Gradle 3.0.1)

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 

クラス。

これは、他のモジュールと同じパッケージ名を持つ複数のBuildConfigクラスが存在するために発生します。これは、パッケージ名をappモジュールとして共有するためです。

この問題の解決方法についてのヘルプがありますか?これを解決して、2つのモジュールが1つのパッケージ名を共有することはできますか?

答えて

0

あなたのライブラリモジュールでpackageBuildConfig(false)を追加してみてください。

android{ 
    ... 
    packageBuildConfig(false) 
} 
関連する問題