我正在使用XmlPullParser,当应用程序通过Proguard
并且apk正在设备上运行时,它会给我以下错误:
08-06 17:10:26.717: E/AndroidRuntime(2527):
Caused by: java.lang.NoSuchMethodError: org.xmlpull.v1.XmlPullParser.d
我在proguard.cfg中添加了-ignorewarnings
,否则就无法通过Proguard
。
以下是我的proguard.cfg文件的链接。
答案 0 :(得分:0)
你混淆了一种你不应该拥有的方法。您需要保持pull解析器代码不变。添加:
-keep public class org.xmlpull.**
到你的proguard.cfg文件。
答案 1 :(得分:0)
你在proguard配置文件中想要的是-keep而不是-ignorewarnings
-keep class org.xmlpull.** { *; }
有关更多详细信息,请参阅以下网址
http://android-developers.blogspot.com/2010/09/proguard-android-and-licensing-server.html
但等等,我的应用程序正在崩溃
大多数崩溃发生的原因是Proguard已经混淆了您的应用程序需要的东西, 例如在AndroidManifest中或在 布局,或者从JNI或反射调用的东西。该 这里提供的Proguard配置试图避免混淆大多数 在这些情况下,但在边缘情况下你仍然可能会结束 看到像ClassNotFoundException这样的东西。
您可以对procfg.txt文件进行编辑以保留具有的类 被混淆了。添加:
-keep public class * [my classname]
应该有所帮助。有关如何预防Proguard的更多信息 混淆特定的东西,请参阅Proguard手册。特别, 保留部分。为了安全起见,尽量保持一点点 您的应用程序尽可能不进行模糊处理。
procfg.txt中提供的标准设置对许多人都有好处 应用程序,并将捕获许多常见的情况,但他们是没有 意味着全面。我们做过的一件事就是Proguard 在obf目录中创建一堆输出文件以帮助您进行调试 这些问题。
mapping.txt文件解释了如何对类进行模糊处理。 您需要确保在提交后保留此信息 你的构建到市场,因为你需要这个来破译你的堆栈 痕迹。