4

我在 Eclipse 中有一个 Android 库项目 (A) 和 Android 应用程序 (B)。对于这个设置,我使用 Proguard,到目前为止没有问题。现在我想将 Flurry 库 (.jar) 添加到我的库项目中,它在模拟器上的调试模式下工作正常。

但是,当我想使用 Proguard 导出应用程序的最终和签名 apk 时,我收到许多“找不到引用的类 ...”警告,并且无法创建 apk。

其中一些类是:

org.joda.time.LocalDateTime  
org.joda.time.format.DateTimeFormatter
org.xerial.snappy.Snappy
com.jumptap.adtag.JtAdView
...

好的,所以我在 proguard.cfg 文件中添加了以下内容:

...
-dontskipnonpubliclibraryclassmembers
-libraryjars ../libproj/libs/FlurryAgent.jar
...
-keep public class com.flurry.android.FlurryAgent { *; }
-keep class com.flurry.** { *; }
-keep class org.codehaus.jackson.** { *; }
-keep class org.apache.avro.** { *; }
-keep interface com.flurry.** { *; }
-keep public class org.joda.time.** { public protected *; }
...

但是,我仍然收到 sam 错误 :(
有什么我在这里缺少的想法吗?

4

1 回答 1

0

显然,flurry jar 可以选择引用其他一些库(joda-time,snappy,...)。

为缺少的引用添加-keep选项根本没有帮助,因为它只会保留指定的类,但它们却丢失了。相反,您应该添加适当-dontwarn的指令:

-dontwarn com.flurry.**

应该忽略任何来自 Flurry 类的警告。

于 2016-07-05T20:13:05.373 回答