1

我在带有proguard的Android项目中使用crittercism库。当我编译我的应用程序时,我在控制台中收到此错误:

警告:crittercism.android.c:在 org.json.JSONArray 类中找不到引用的方法 'org.json.JSONArray put(long)'

我可以添加一个 -dontwarn 行来避免这个错误,但是 crittercism 不起作用。我已阅读 crittercism 文档以使用以下行配置 proguard 文件:

-keep public class com.crittercism.**
-keepclassmembers public class com.crittercism.**{ *; }

但我仍然有这个错误。

4

1 回答 1

1

如果有一个类出现在 android 框架和外部库文件中(在你的情况下是它的 crittercism lib 文件),则会发生 Proguard 错误。这会导致混淆。

您需要指定要保留在 proguard 中的确切类(如 -keep public class com.crittercism.abcd)而不是(-keep public class com.crittercism.*)。确定导致冲突的确切类别。

很明显 org.json.JSONArray 存在于 Android 框架中,它也可能存在于 crittercism api 中。

确定 org.jason.JSONArray 在 crittercism 库中的位置,并包含在 proguard 文件中,例如

-保持公共类 com.crittercism...JSONArray。

于 2014-05-27T10:31:12.840 回答