无法让库jar与Android和Proguard一起使用

时间:2012-10-08 20:24:08

标签: android proguard flurry

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

但是,当我想导出我的应用程序的最终和签名的apk时,使用Proguard,我得到许多“找不到引用的类......”警告并且无法创建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错误:(
我在这里缺少什么想法?

1 个答案:

答案 0 :(得分:0)

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

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

-dontwarn com.flurry.**

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