シナリオ: build.gradle
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:cardview-v7:23.1.1'
compile 'com.google.android.gms:play-services:8.3.0'
compile 'com.android.support:design:23.1.1'
compile 'com.android.support:multidex:1.0.1'
compile project(':intro-slider-lib')
compile project(':parallax-effect-lib')
compile project(':odoo-rpc-v3')
compile('com.digits.sdk.android:digits:1.10.2@aar') {
transitive = true;
}
}
エラー:
Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/gson/JsonPrimitive.class
問題:
compile project(':odoo-rpc-v3')
compile('com.digits.sdk.android:digits:1.10.2@aar') {
transitive = true;
}
上記のodoo-rpcと数字の両方にgsonモジュールが含まれているため、重複エラーが表示されます。
試みた解決策:
- 試行番号 1
これを使用して、数字から gson モジュールを除外しました。
compile('com.digits.sdk.android:digits:1.10.2@aar') {
transitive = true;
exclude group: 'com.google.code.gson', module: 'gson'
}
しかし、別の奇跡が起こりました (キャッチされない変換エラー: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: GC オーバーヘッド制限を超えました)
注: multiDexEnabled true も設定されています
- 試行番号2
odoo-rpc と Digits の両方から gson モジュールを除外しようとしましたが、gson モジュールを 1 つだけ挿入しましたが、odoo-rpc から gson モジュールを除外できなかったため失敗しました。スニペットは次のとおりです。
compile (project(':odoo-rpc-v3')){
exclude group: 'com.google.code.gson', module: 'gson'
}
compile('com.digits.sdk.android:digits:1.10.2@aar') {
transitive = true;
exclude group: 'com.google.code.gson', module: 'gson'
}
- 試行番号3
jarファイル(odoo-rpc)の1つをローカルに保存し、gsonファイルを削除してから、そのjarファイルを次のように依存関係に挿入しました:
compile files('C:/Users/tonys/AndroidStudioProjects/Hello/classes.jar')
しかし、進展はありませんでした。:(
私のコンセプトが正しいか間違っているかを確認するのを手伝ってください。前もって感謝します。