android - 使用混淆器的 ksoap2 和 actionbarscherlock 之间的冲突

标签 android obfuscation proguard

我在尝试使用 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 中的行不再起作用了。

我该如何解决这个问题?

最佳答案

尝试以下操作:

-dontwarn org.xmlpull.v1.**
-dontnote org.xmlpull.v1.**
-keep class org.xmlpull.** { *; }

关于android - 使用混淆器的 ksoap2 和 actionbarscherlock 之间的冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17965992/

相关文章:

android - 优步通用链接未设置下车位置

java - 删除小部件时遇到问题?

Kotlin 禁用元数据注释

php - 使用加密、代理 key 等混淆 GET id 变量

android-studio - 如何在 Android Studio 中使用带有过滤器的 ProGuards -libraryjars?

android - 在处理 Proguard、MultiDex、Testing 和 Product Flavors 时有什么好的策略?

java - Proguard + Spring Boot + Maven 维护结构

Android Studio、Gradle、OpenCV 和 NDK

android - 根据 SDK 版本动态加载首选项

swift - iap 收据验证 : security