12

首先,对不起,如果这个话题已经回答了,但我还没有找到它......

我是 Android 和 Proguard 的新手。在我的应用程序开发结束时,我当然想使用 proguard 来减小它的大小。当我在我的应用程序中使用来自 google api 客户端的一些库时,我已将它们添加为外部 jar。

好吧,我的应用程序在没有通过 proguard 步骤的情况下运行良好,但是当我尝试导出它时,它开始让我头疼。很多我不知道如何跳过或安排的警告。像这样的东西:

[2012-03-05 07:20:06 - CollaJoveThreads] Proguard returned with error code 1. See console
[2012-03-05 07:20:06 - CollaJoveThreads] Warning: com.google.common.base.Equivalence: can't find referenced class javax.annotation.Nullable
[2012-03-05 07:20:06 - CollaJoveThreads] Warning: com.google.common.base.Equivalence: can't find referenced class javax.annotation.Nullable
[2012-03-05 07:20:06 - CollaJoveThreads] Warning: com.google.common.base.Equivalence: can't find referenced class javax.annotation.Nullable
[2012-03-05 07:20:06 - CollaJoveThreads] Warning: com.google.common.base.Equivalences$Impl$1: can't find referenced class javax.annotation.Nullable
[2012-03-05 07:20:06 - CollaJoveThreads] Warning: com.google.common.base.Equivalences$Impl$1: can't find referenced class javax.annotation.Nullable

和更多相似。

我遵循了 Google 开发人员的建议,并将这一行添加到我的 proguard.cfg 中:

# Needed by google-api-client to keep generic types and @Key annotations accessed via reflection
-keepclassmembers class * {
  @com.google.api.client.util.Key <fields>;
}

-keepattributes Signature,RuntimeVisibleAnnotations,AnnotationDefault,*Annotation*

-dontwarn sun.misc.Unsafe

但它继续出现所有这些警告消息。当我尝试使用“-dontwarn”选项时,我的应用程序崩溃了。

我已经阅读了这些问题以及更多内容:

任何人都可以帮忙吗?

4

1 回答 1

16

嗨,我知道这已经通过将jsr305jar 文件添加到您的项目中来解决。然而,我花了一段时间才弄清楚在哪里可以找到这个罐子以及如何处理它。

您可以在此处获取此 jar 的最新版本下载最新的 jar 并将其放在您的libs文件夹中,然后将其添加到 Eclipse 中的构建路径中,一切都应该正确。

这也解决了我所有的问题。

于 2012-06-20T07:00:44.730 回答