コンパイルの問題:app:t r a n s f m o r m e x A r c hiveWithExternalLibsDexMergerForDebug


問題にぶつかる
今日コンパイル中に見たことのない問題が発生しましたので、ここに記録します.皆さんのお役に立てたら幸いです.
Android Studio Debug'app'を使用する場合、エラー:app:t r a n s f o r m e x A r c h v e W i t h E x t e rnalLibsDexMergerForDebug
解決を試みる
一時はごまかして、検索を通じて、ある大物もこの問題に遭遇したことがある.
https://blog.csdn.net/guoxiaolongonly/article/details/80932711
しかし、彼のやり方では、問題点が見つからない.(彼のやり方を試してみてください)
検索を続行
https://blog.csdn.net/u012214003/article/details/79632675
この大物の方法に従って、最後の一歩を見つけてgradleの依存木を探します.しかし、プロジェクトが大きいためです.依存木が煩雑すぎて、他の大物の解決策があるかどうか見たい(実は依存木を見るのがおっくうだ)
他の文章は、写したか、役に立たないか.貼らないわ
具体的な状況
上の2つの文章を読んで、大体の方向はもう見つけました.コンパイルの時、クロスコンパイルしました.
はっきり言って、ライブラリを引用するときに繰り返しました.(jarパッケージかaarパッケージの繰り返し参照かもしれません.この場合は、1つ残しておけばいいです)
もう一度コンパイルしますが、今回はgradleでエラーメッセージを印刷します.
具体的な手順
1.AS右下のGradle Consoleをクリック
2.青い字をクリックRun with--stacktrace
3.gradleコンパイルを待つ(gradleも言語なのでエラーがあるのは普通)
4.コンパイル後、エラーの最終原因を特定
私のプロジェクトの問題は
Caused by: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/.....

省略しました.
省略された部分は私が呼び出した方法の繰り返し参照です.
v 4パケットの重複によるものが見られます.
いい原因が見つかった
 
問題を解決する
1.app以外のすべてのmoduleがbuildにあるかどうかを確認します.gradleでは、v 4パッケージを参照します.
2.見つかった場合、直接コメントまたは削除
3.cleanちょっと、コンパイルして実行します.間違いなく報告します(必ずclean Project)
反省する
この問題が発生したのは、他人のプロジェクトを引用し、他人のmoduleを引用したからだ.同じライブラリも参照
次回、他人のライブラリ、または他人のアイテムを引用する場合.自分も同じライブラリを参照しているかどうかを確認する必要があります.
 
最後に、上の2つの文章のブロガーに感謝します.