4

我在尝试使用 Proguard 工具混淆我的应用程序代码时遇到了一些问题。似乎在同一个项目中同时使用 ksoap2 和 actionbarsherlock 会发生冲突。

为了缩小调试操作的范围,我创建了一个非常简单的 Android 项目,我在其中使用了这两个库。好吧,如果我只使用 actionbarsherlok,我可以成功导出我的应用程序。如果我只使用 ksoap2 但在 proguard-project.txt 中添加以下行,则同样的事情:

 ignorewarnings
-keep class org.kobjects.** { *; }
-keep class org.ksoap2.** { *; }
-keep class org.kxml2.** { *; }
-keep class org.xmlpull.** { *; }

通过添加这些行,我可以避免 Proguard 生成一堆关于 org.xmlpull 类的警告。

当我尝试使用两个库时,将上面的行留在 proguard-project.txt 中,我得到:

[2013-07-31 10:47:46 - testproguard] Warning: library class android.content.res.XmlResourceParser extends or implements program class org.xmlpull.v1.XmlPullParser
[2013-07-31 10:47:46 - testproguard] Warning: library class android.content.Intent depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-31 10:47:46 - testproguard] Warning: library class android.content.IntentFilter depends on program class org.xmlpull.v1.XmlSerializer
[2013-07-31 10:47:46 - testproguard] Warning: library class android.content.IntentFilter depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-31 10:47:46 - testproguard] Warning: library class android.content.res.ColorStateList depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-31 10:47:46 - testproguard] Warning: library class android.graphics.drawable.AnimationDrawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-31 10:47:46 - testproguard] Warning: library class android.graphics.drawable.BitmapDrawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-31 10:47:46 - testproguard] Warning: library class android.graphics.drawable.ClipDrawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-31 10:47:46 - testproguard] Warning: library class android.graphics.drawable.ColorDrawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-31 10:47:46 - testproguard] Warning: library class android.graphics.drawable.Drawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-31 10:47:46 - testproguard] Warning: library class android.graphics.drawable.Drawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-31 10:47:46 - testproguard] Warning: library class android.graphics.drawable.Drawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-31 10:47:46 - testproguard] Warning: library class android.graphics.drawable.LayerDrawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-31 10:47:46 - testproguard] Warning: library class android.graphics.drawable.ShapeDrawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-31 10:47:46 - testproguard] Warning: library class android.graphics.drawable.ShapeDrawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-31 10:47:46 - testproguard] Warning: library class android.util.Xml depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-31 10:47:46 - testproguard] Warning: library class android.util.Xml depends on program class org.xmlpull.v1.XmlSerializer
[2013-07-31 10:47:46 - testproguard] Warning: library class android.util.Xml depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-31 10:47:46 - testproguard] Warning: library class android.view.LayoutInflater depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-31 10:47:46 - testproguard] Warning: library class android.view.LayoutInflater depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-31 10:47:46 - testproguard]       You should check if you need to specify additional program jars.
[2013-07-31 10:47:46 - testproguard] Warning: there were 20 instances of library classes depending on program classes.
[2013-07-31 10:47:46 - testproguard]          You must avoid such dependencies, since the program classes will
[2013-07-31 10:47:46 - testproguard]          be processed, while the library classes will remain unchanged.
[2013-07-31 10:47:46 - testproguard] Error: Method must be overridden in [proguard.optimize.peephole.ClassMerger] if ever called

我似乎 proguard-project.txt 中的行不再起作用了。

我该如何解决这个问题?

4

1 回答 1

0

尝试以下操作:

-dontwarn org.xmlpull.v1.**
-dontnote org.xmlpull.v1.**
-keep class org.xmlpull.** { *; }
于 2015-09-22T20:49:55.580 回答