1

在我的项目中,我有这个依赖:

compile ('com.twitter.sdk.android:twitter:2.2.0@aar'){
    transitive=true;
}
compile 'com.google.android.gms:play-services-maps:11.2.0'
compile 'com.google.android.gms:play-services-auth:11.2.0'
compile 'com.itextpdf:itextg:5.5.10'
compile 'com.nightonke:boommenu:2.1.0'
compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.squareup.retrofit2:converter-gson:2.3.0'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:design:25.3.1'
compile 'com.android.support:support-v4:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'

twitter 和 google 用于注册新用户,但如果我想使用 com.facebook.android:facebook-android-sdk:[4,5) 依赖项添加 facebook,则会出现此错误:

错误:任务“:app:transformClassesWithDexForDebug”执行失败。com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:com.android.dex.DexIndexOverflowException:无法将新索引70800合并到非巨型操作说明!

我还注意到,如果我删除

compile 'com.itextpdf:itextg:5.5.10'

错误永远不会出现,但我需要那种依赖!

我发现当字符串太多或类似的东西时会发生这种情况,可以通过添加来修复

dexOptions {
    jumboMode = true
}

但是编译时间增加了!!

那么,如果 facebook 独立于 itext,为什么会发生这种情况呢?

以及如何在不删除某些内容或添加 dexOption 甚至不添加 multidex 选项的情况下解决该问题?

4

0 回答 0