【发布时间】:2014-08-23 14:44:31
【问题描述】:
我正在开发一个使用多个大型外部库(.jar 文件)的 Android 项目。由于 Android 有 DEX 的 65536 个方法限制,我想删除外部库中我在代码中没有使用过的所有类和方法。
问题是我在外部库中使用的类有它们自己的依赖项。我希望识别外部库中我不需要的所有类(我的代码没有使用,也不是我需要的类的依赖项)。
两个澄清:
ProGuard 和 DexGuard 不相关,因为它们不修改外部库
我不希望使用自定义加载程序或将我的代码拆分为多个 dex 文件。我想做的就是识别并删除有问题的类。
【问题讨论】:
-
我不建议您实际修改库本身,因为每次更新库时您都必须重复该过程。 “ProGuard 和 DexGuard 无关紧要,因为它们不会修改外部库”——但是,它们会从外部库中删除未使用的类,作为构建 APK 的一部分。
-
我不打算在不久的将来升级这些库。 ProGuard 仍然无关紧要,因为它使我无法调试应用程序,因为使用 Eclipse 进行调试不会调用 ProGuard
-
找到解决方案了吗?我还在找一个。这确实展示了如何减少 google play services jar,但对我来说还不够:medium.com/@rotxed/…
标签: java android android-studio