Hoge というクラスのインスタンスを完全修飾名(文字列)から ClassLoader を使って動的に生成しているのですが、
-keep class com.example.android.Hoge
だけだと getConstructor() を呼んだときに NoSuchMethodException が起こってしまいます。
getConstructor() で取得しようとしているコンストラクタは引数ありで、コードからは呼ばれていません。
そのためなのか、どうも proguard が削除してしまっているよう。
そこで
-keep class com.example.android.Hoge {
public <init>(com.example.android.Fuga);
}
のようにすれば削除されなくなります。
ちなみに、com.example.android 内の全てのクラスに適用したい場合は
-keep class com.example.android.*
でいいですが、サブパッケージ内のクラスにも適用したい場合は
-keep class com.example.android.**
にします。
-keep class com.example.android.Hoge
返信削除だと「クラス名」しか keep 対象になりません。全クラスメンバも keep 対象にするなら、例えば
-keep class com.example.android.Hoge { *; }
のように書く必要があります。ProGuard の -keep オプションはわかりにくいですね。。。