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

Android dependency included multiple times, causes app to reach dex limit

我有一个 android 应用程序结构如下:

主应用/

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

lib-A/

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

lib-B/

dependencies {
    compile 'Large3PLib'
}

当我编译时,我达到了多 dex 限制,我看到主应用程序、lib-A 和 lib-B 都有非常大的 dex 计数,因为它们都包括 'Large3PLib'。有什么方法可以告诉 gradle 只包含 'Large3PLib' 一次以减少我的 dex 计数?

备注:

您可以编辑 lib-Alib-B 以将依赖项标记为 'provided':

provided 'Large3PLib'

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

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