2

私はproguardを初めて使用し、androidアプリを開発していますが、デフォルトのandroid proguard構成ファイル(sdkから)を使用してビルドした後、何も機能しません。私の仮定は、実行時にRファイル上のリソースを見つけるコードに関連しています(はい、醜いスキャンファイルと検索リソースID)。proguardのドキュメントから、ファイルがproguradによって処理されないようにする方法を理解できませんでした。

私のアプリが失敗する理由を知る最良の方法は、proguardに最初は何もしないようにしてから、特定のものを1つずつ縮小することだと思います。

だから私が知りたいのは、すべてのクラス(到達不能コードも含む)を保持するようにproguardにどのように指示できるかです(これは可能ですか?)。

その後(うまくいけば私のアプリは機能します)、特定のクラスを縮小して難読化するように彼に指示します。

私が得るエラーは、R$idファイルを動的にロードしようとしたときにファイルが見つからないという例外です。

4

1 に答える 1

3

proguard.cfgで、Proguardに特定のクラスを保持するように強制できます。

-keep class com.myapp.SomeClass { *; }

またはパッケージ全体:

-keep class com.myapp.** { *; }

確かに、XMLファイルからのみ参照されるクラスに対してこれを行う必要があります。

于 2012-06-20T10:09:31.530 に答える