2

我在一个 Android 项目中使用 Guava。我达到了 65k 方法限制,导致 gradle 构建失败。我发现这可以通过使用proguard来解决。我在发布版本上运行 Proguard,它工作正常。我不想在调试版本上运行 proguard,因为它使调试变得困难。我想知道是否有办法解决这个问题?我正在考虑的一个选择是构建一个本地 guava.jar 并将其定义为依赖项,而不是从 maven Central 中提取它。有一个更好的方法吗?

4

2 回答 2

1

最新的 Android 构建工具支持 MultiDex 选项。这允许使用超过 65k 方法构建应用程序。只需按照官方指南

您还可以与 ProGuard 一起启用自动资源缩减:

android {
    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
        }
    }
}
于 2015-03-11T05:31:33.833 回答
0

根据Guava 的官方文档,您可以使用以下内容:

-injars path/to/myapplication.jar
-injars lib/guava-r07.jar
-libraryjars lib/jsr305.jar
-outjars myapplication-dist.jar

-dontoptimize
-dontobfuscate
-dontwarn sun.misc.Unsafe
-dontwarn com.google.common.collect.MinMaxPriorityQueue

-keepclasseswithmembers public class * {
    public static void main(java.lang.String[]);
}

这将使您的方法保持相同的名称而不会混淆。这意味着您仍然可以使用按原样编写的所有适当名称进行正确调试。

于 2015-03-11T09:52:44.040 回答