【问题标题】:Prevent reaching 65k methods in Android防止在 Android 中达到 65k 方法
【发布时间】:2016-06-15 20:54:12
【问题描述】:
每次不经考虑地使用外部库都会导致 Gradle 错误达到 65k 方法。所以我想知道防止这种情况的最佳解决方案是什么,我不想考虑使用 Proguard 自定义设置。
我想到的(当然,如果我们使用开源库)只是下载代码并手动将其放入我们的项目中。然后我们可以删除未使用的类和方法。看起来我们正在扮演 Proguard 角色,这很耗时。
问题
- 但是使用 Gradle 获取 jar 和
手动输入代码?还是在性能上有什么不同?
我将感谢在使用许多库创建项目时的任何最佳实践。
注意:我想暂时停止考虑 Proguard 自定义设置,因为它经常会产生警告,其中省略它们对我来说看起来有点奇怪,例如-dontwarn。另外我有点害怕使用 MultiDex 支持,我认为不建议这样做。
【问题讨论】:
标签:
android
gradle
proguard
android-multidex
【解决方案1】:
您可以在 gradle 中做的一件事是非常具体地了解您所包含的代码模块。
例如:
compile 'com.google.android.gms:play-services:8.4.0'
将包括更多的东西,而不仅仅是......
compile 'com.google.android.gms:play-services-location:8.4.0'
一般最好让 gradle 管理外部依赖。最大的原因是您可以放心,您可以获得与特定版本相关的代码的快照。如果您只是手动导入代码,很容易忘记您正在使用的代码版本。从第 3 方修改(或有选择地包含)代码的一大风险是当第 3 方更新他们的代码时,可能是为了修复由新版本的 Android 引起的主要错误,并且其中包含一些会破坏您的手动调整的更改。现在你手上的问题比你刚刚将它包含为一个 gradle 依赖项更复杂。