0

XmlPullParserを使用していますが、アプリがを通過Proguardし、apkがデバイスで実行されている場合、次のエラーが発生します。

08-06 17:10:26.717: E/AndroidRuntime(2527):
   Caused by: java.lang.NoSuchMethodError: org.xmlpull.v1.XmlPullParser.d

-ignorewarningsproguard.cfgに追加しました。そうしないと、を渡す方法がありませんProguard

これが私のproguard.cfgファイルへのリンクです。

4

2 に答える 2

0

proguard構成ファイルに必要なのは、-ignorewarningsではなく-keepです。

-keep class org.xmlpull.** { *; }

詳細については、次のURLを参照してください

http://android-developers.blogspot.com/2010/09/proguard-android-and-licensing-server.html

しかし、待ってください、私のアプリは今クラッシュしています

ほとんどのクラッシュは、AndroidManifestまたはレイアウト内で参照されるクラス、あるいはJNIまたはリフレクションから呼び出されるクラスなど、アプリケーションが必要とするものをProguardが難読化したために発生します。ここで提供されるProguard構成は、これらのケースのほとんどを難読化することを回避しようとしますが、エッジケースでは、ClassNotFoundExceptionのようなものが表示される可能性があります。

procfg.txtファイルを編集して、難読化されたクラスを遠ざけることができます。追加:

-keep public class * [my classname]

役立つはずです。Proguardが特定のものを難読化するのを防ぐ方法の詳細については、Proguardのマニュアルを参照してください。具体的には、キープセクションです。セキュリティ上の理由から、アプリケーションをできるだけわかりにくくしないようにしてください。

procfg.txtで提供される標準設定は、多くのアプリケーションに適していて、多くの一般的なケースをキャッチしますが、それらは決して包括的ではありません。私たちが行ったことの1つは、これらの問題のデバッグに役立つように、Proguardにobfディレクトリに一連の出力ファイルを作成させることです。

mapping.txtファイルは、クラスがどのように難読化されているかを説明しています。ビルドをMarketに送信したら、スタックトレースを解読するためにこれが必要になるため、これを維持する必要があります。

于 2012-08-07T17:19:58.207 に答える
0

あなたはあなたが持ってはいけない方法を難読化しました。プルパーサーコードをそのまま維持する必要があります。追加:

-keep public class org.xmlpull.**

proguard.cfgファイルに。

于 2012-08-07T17:16:43.153 に答える