Android依赖项包含多次,导致应用达到dex limit

时间:2016-04-05 19:21:59

标签: android gradle multidex

我有一个像这样结构的Android应用程序:

主应用程序/

dependencies {
    compile project(':lib-A')
    compile project(':lib-B')
}

LIB-A /

dependencies {
    compile 'Large3PLib'
    compile 'Other-libs'
}

LIB-B /

dependencies {
    compile 'Large3PLib'
}

当我编译时,我达到了多索引限制,我发现主应用程序,lib-A和lib-B都有非常大的dex计数,因为它们都包括'Large3PLib'。有没有办法告诉gradle只包含'Large3PLib'一次以缩小我的dex数量?

注意:

  • 我已启用proguard
  • 我尝试将main-app,lib-A和lib-B中的代码组合成一个大模块。这使我回到了multidex限制之下,但我不喜欢这个解决方案,因为现在我的代码已经不再有条理了。

1 个答案:

答案 0 :(得分:0)

您可以修改lib-Alib-B以将依赖关系标记为“已提供”:

provided 'Large3PLib'

这意味着它不会包含在生成的jar或aar中。但是你必须将它添加到根项目中:

dependencies {
    compile 'Large3PLib'
    compile project(':lib-A')
    compile project(':lib-B')
}