【问题标题】:conflict between ksoap2 and actionbarscherlock using Proguard使用 Proguard 的 ksoap2 和 actionbarscherlock 之间的冲突
【发布时间】:2013-07-31 09:02:23
【问题描述】:

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

我该如何解决这个问题?

【问题讨论】:

    标签: android obfuscation proguard


    【解决方案1】:

    尝试以下方法:

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

    【讨论】:

      猜你喜欢
      • 2017-06-17
      • 2012-06-27
      • 2012-03-06
      • 2011-05-02
      • 2012-11-25
      • 2013-10-27
      • 2014-03-02
      • 2016-11-15
      • 2012-11-02
      相关资源
      最近更新 更多