Конфликт между ksoap2 и actionbarscherlock с помощью 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.

Когда я пытаюсь использовать оба libs, оставляя вышеуказанные строки в 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.** { *; }