web-dev-qa-db-ja.com

Gradle重複エントリ:Java.util.Zip.ZipException

ZendeskモバイルSDKをMavenリポジトリを介してプロジェクトに統合しましたが、もうビルドしません。私が使用しているピカソライブラリと何らかの衝突があります。ビルド中にこのエラーが発生します。

Error:Execution failed for task ':app:packageAllDebugClassesForMultiDex'.
> Java.util.Zip.ZipException: duplicate entry: com/squareup/picasso/Action$RequestWeakReference.class 

../gradlew dependenciesアプリフォルダーで、これはzendeskモジュールで見つけたものです。

\--- com.zendesk:sdk:1.0.0.1
     +--- com.squareup.retrofit:retrofit:1.4.1
     |    \--- com.google.code.gson:gson:2.2.4
     +--- com.squareup.picasso:picasso:2.3.2
     +--- com.Android.support:support-v4:20.0.+ -> 21.0.3 (*)
     \--- com.Android.support:appcompat-v7:20.0.+ -> 21.0.3 (*)

Zendeskもピカソを使用していますが、プロジェクトにあるものとは異なるバージョンです。私はこのようにピカソをzendeskから除外しようとしました:

compile (group: 'com.zendesk', name: 'sdk', version: '1.0.0.1'){
            exclude group: 'com.squareup.picasso'
        }

しかし、これにより、アプリの他のコンポーネントでランタイム例外が発生します。ライブラリとまったく関係のないクラスに対してNoDefFoundErrorが発生します。
この問題を回避する方法はありますか?

17

com.Android.support:multidex依存関係を追加したとき、実際には他の依存関係と衝突するいくつかの依存関係を追加しました。

解決方法:
---------------
1。クラスの検索、「RequestWeakReference.class」の場合(AndroidStudioでは、WindowsではCtrl + N、MacではCMD-Oを押すだけです)
2。どのjarに含まれているかを確認してください-Android Studioはポップアップに書き込みます。
3。たとえば、すべてのビルドから除外します。

Android {
     configurations{
        all*.exclude module: 'servlet-api'
    }
}
27
Tomer