我在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错误:(
我在这里缺少什么想法?
答案 0 :(得分:0)
显然flurry jar有一些其他库的可选引用(joda-time,snappy,...)。
为缺少的引用添加-keep
选项根本没有用,因为它只保留指定的类,但它们都缺失了。相反,您应该添加适当的-dontwarn
指令:
-dontwarn com.flurry.**
应该忽略来自乱舞类的任何警告。