特定のクラスをBeanクラス、コールバッククラス、およびネイティブクラスのように難読化することから除外する必要があります。公式の例では次のように述べている:
処理ネイティブメソッド
アプリケーション、アプレット、サーブレット、図書館などは、ネイティブメソッドが含まれている場合、あなたは自分の名前とそのクラスを維持したいと思うを'という名前であるため、ネイティブライブラリにリンクすることができます。
-keepclasseswithmembernames,includedescriptorclasses class * {
native <methods>;
}
注:すべてのクラスまたはすべてのネイティブメソッドを保持する必要はありません。関連する名前を難読化しないようにしたいだけです。
処理コールバックメソッド
など、アプリケーション、アプレット、サーブレット、ライブラリは、外部コード(ネイティブコード、スクリプト、...)から呼び出されるコールバックメソッドを、含まれている場合、あなたがよそれらを保存したいと思うし、おそらく彼らのクラスも。それらはアプリケーションのメインメソッドと同じように、コードへのエントリポイントです。アプリケーション、アプレット、サーブレット、図書館など、豆エディタクラス、またはgetterメソッドとsetterメソッドを見つけるために、Beanクラスのイントロスペクションを多用した場合は、その後、Beanクラス
を処理
-keep class mypackage.MyCallbackClass {
void myCallbackMethod(java.lang.String);
}
構成が苦しくなる可能性があります。必ずBeanクラス名、またはゲッターとセッターの名前は
参考を変更しないでくださいすることよりも、あなたが行うことができます他の多くはありません。また、クラス名やメソッドのシグネチャ
-keep class mybeans.** {
void set*(***);
void set*(int, ***);
boolean is*();
boolean is*(int);
*** get*();
*** get*(int);
}
にいくつかの他のワイルドカードを使用しますシナリオ(Ressources、Serializationクラス)は問題を引き起こす可能性があります。こんにちは、これら
ProGuard Official: Examples
のために全体のガイドを参照してください、たくさん助けのためのおかげで、私はそれを追加しましたが、私はまだエラーを受信しています!ここに私の設定がありますhttp://pastebin.com/bnhvYGaT – SJ19
あなたが出力ジャーをどこかに貼り付けて、私たちがそれを調べることができるかもしれません。 –
確かに、どこにアップロードするのか分かりませんので、Githubに載せます。 https://github.com/SJ19/ProGuardTest – SJ19