2017-09-16 56 views
0

添加LeakCanary作爲一個依賴於我的Android gradle這個後:未捕獲的翻譯錯誤:java.lang.IllegalArgumentException異常:已添加:LCOM/squareup/leakcanary /觀察者/ R

compile 'com.squareup.leakcanary:leakcanary-android:1.5.2' 

我得到這個錯誤時,建築中的應用:

:app:transformClassesWithDexForDebug 
AGPBI: {"kind":"error","text":"Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/squareup/leakcanary/watcher/R;","sources":[{}]} 
AGPBI: {"kind":"error","text":"1 error; aborting","sources":[{}]} 

FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':app:transformClassesWithDexForDebug'. 
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: 
com.android.ide.common.process.ProcessException: Return code 1 for dex process 

我不包括這個庫別的地方,沒有這個編譯leakcanary的依賴性,我的應用程序正在建設的罰款。

我想看看我是否有一些隱藏的金絲雀依賴

./gradlew -q dependencies app:dependencies --configuration compile | grep com.squareup 
\--- com.squareup.leakcanary:leakcanary-android:1.5.2 
     \--- com.squareup.leakcanary:leakcanary-analyzer:1.5.2 
      +--- com.squareup.leakcanary:leakcanary-watcher:1.5.2 
      \--- com.squareup.haha:haha:2.0.3 

但僅此預期一個(我認爲)。

完全一樣的輸出是,當我使用的代碼從他們的常見問題

debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.2' 
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.2' 
+0

你有沒有加入multidexEnabled中的build.gradle真的嗎? –

+0

是的,我有。另外dexOptions:_preDexLibraries = false_和_additionalParameters = ['--core-library'] _ –

+0

嗯,這個preDexLibraries是以前的開發人員剩下的,我從不檢查是否有必要。但是,當我評論這一點,建立通過! –

回答

0

這個錯誤與dex文件(Android的字節碼的.class文件)

是包括這個庫當您的代碼方法超過單個dex文件中的最大限制時,這是64k方法調用所需的。

preDexLibraries用於當您想從庫中構建dex文件,以便在進一步構建時不構建庫的dex文件。在你的情況,正因爲如此,它是創建庫DEX文件的兩個實例,造成錯誤 -

already added: Lcom/squareup/leakcanary/watcher/R;","sources"

相關問題