2017-09-16 113 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"

相关问题