複数のdexの問題が以前に何度も報告されていることは知っていますが、私の場合はどの解決策も機能していないようです。
コンソール:
Unable to execute dex: Multiple dex files define Lbolts/AggregateException;
Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lbolts/AggregateException;
人気のあるソリューションの1つは、ビルドパスから「Androidプライベートライブラリ」コンテナのマークを解除することです。そのコンテナには必要なライブラリがもう少しあるので、それはできません。
別の解決策は、.jar形式で明示的に追加された重複ライブラリのマークを解除することです。私はそのような図書館を持っていません。
私の場合の重複ライブラリは次のとおりです。Android-support-v7-appcompat.jar
次の2つのコンテナーに(sdkフォルダーから直接参照されて)あります。
1。)Androidプライベートライブラリ
2。)Android依存関係
問題は、これら2つのコンテナの両方に他の必要なライブラリが含まれているため、これら2つのコンテナのいずれも完全にチェック解除できないことです。しかし、この重複した.jarファイルだけをどちらのコンテナーからも削除することはできません。
編集: N.B. Android-support-v7-appcompat library_projectをプロジェクトに追加すると、両方のコンテナーに入ります。それが1つだけになるように何らかの方法がなければなりません。
誰かが私がそれをどのように行うことができるか私を助けることができますか?
[〜#〜]解決済み[〜#〜]
bolts-Android
ライブラリはここでの本当の問題でした。 2つの異なるバージョンがあり、競合が発生していました。 FacebookSDK
ライブラリはbolts-Android-1.1.2
をもたらし、Android-support-v7-appcompat
はbolts-Android-1.1.4
をもたらします。
bolts-Android-1.1.2
を含むFacebookSDK
libraryプロジェクトのAndroidプライベートライブラリコンテナのマークを外しました。その結果、私のプロジェクトにはbolts-Android-1.1.4
という1つのバージョンしかなく、競合を解決しました。今は問題なく動作します。
また、重複したAndroid-support-v7-appcompat
エントリは問題ではなかったことが判明しました。
最近、react Nativeプロジェクトでこれに遭遇しました。プロジェクトのAndroidフォルダーに移動し、ターミナルでこのコマンド「./gradlewapp:dependencies」を押して依存関係ツリーを表示できます。i Android Bolts under facebooksdkの2つのパッケージが見つかりました。このパッケージをfacebooksdkから除外すると、問題なく動作します。
compile ('com.facebook.react:react-native:+') {
exclude group: 'com.parse.bolts', module: 'bolts-tasks'
}
これは、Facebook SDKをAndroidに追加するときに発生する可能性があり、次の方法で解決できます。
compile ("com.facebook.Android:facebook-Android-sdk:4.1.0") {
exclude group: 'com.parse.bolts', module: 'bolts-Android'
}
reactバージョンが0.31.0に更新されたので、com.facebook.fresco:animated-gif:0.10.0
を持つcom.parse.bolts
を統合したい場合は、次のようにします。
compile ('com.facebook.react:react-native:+') {
exclude group: 'com.parse.bolts', module: 'bolts-tasks'
}
compile ('com.facebook.fresco:animated-gif:0.10.0'){
exclude group: 'com.parse.bolts', module: 'bolts-tasks'
}