防止在 Android 中达到 65k 个方法

Prevent reaching 65k methods in Android

每次不经考虑地使用外部库都会导致 Gradle 关于达到 65k 方法的错误。所以我想知道防止这种情况的最佳解决方案是什么,我不想考虑使用 Proguard 自定义设置。

我想到的(当然如果我们使用的是开源库)只是下载代码并手动将其放入我们的项目中。然后我们可以删除不用的类和methods。看起来我们在扮演 Proguard 的角色,而且很耗时。

问题

我将感谢在创建包含许多库的项目时的任何最佳实践。

注意:我暂时不想考虑 Proguard 自定义设置,因为它经常会产生警告,而忽略它们对我来说有点奇怪,例如-dontwarn。另外我有点害怕使用 MultiDex 支持,我认为不推荐这样做。

您可以在 gradle 中做的一件事是非常具体地说明您要包含哪些代码模块。

例如:

compile 'com.google.android.gms:play-services:8.4.0'

将包含更多内容,而不仅仅是...

compile 'com.google.android.gms:play-services-location:8.4.0'

通常最好让 gradle 管理外部依赖项。最大的原因是您可以放心,您获得的是与特定版本相关联的代码快照。如果您只是手动导入代码,很容易忘记您正在使用的代码版本。修改(或有选择地包含)来自第三方的代码的一个很大的风险是,当第三方更新他们的代码时,可能是为了修复由 Android 的新版本引起的重大错误,并且他们包含了一些破坏你的代码的更改手动调整。现在,与将其作为 gradle 依赖项包含相比,现在您手上的问题更加复杂。