私はAndroidアプリケーションにProGuardを適用しました。ProguardがAndroidでアクティビティクラスを使用する理由
私は何も変えない、設定ファイルとして
android-studio/sdk/tools/proguard/proguard-android.txt
を使用しています。私は活動についてのみ文を参照してくださいすることができます。このファイルで
:
We want to keep methods in Activity that could be used in the XML attribute onClick
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
それは彼らがそうであるように、いくつかの方法は保存されたまま活動クラス名は、ProGuardのでobfusctatedされていることから、次の。これは理解できる。
しかし、私のアプリケーションでは、私はその後、私はこの活動を開始し、それがうまく起動し
Class.forName("my.app.MyActivity")
を使用して文字列からのアクティビティクラスを作成します。
しかし、これは、アクティビティ由来のクラスは難読化されていないことを意味しますか?。 ProGuardのはActivity
ため-keep class
ディレクティブを持っていないので、それは私が私が観察行動に依存していることができれば、それだけで、誰かが、説明していただけます-keepclassmembers.
を持って、失敗している必要がありますか?または、私は-keepclassmembers
指令を誤解していますか? ProGuard FAQから
ファイル全体を投稿する必要があります。その行だけでは、アクティビティ名を保持する理由を説明できません – Raffaele