特定のクラスを削除からスキップしたい。通常、アプリケーションのどこからも参照されませんが、リフレクションによってのみ参照されるため、シュリンカーによって削除されます。パッケージ内の他の「隣接する」クラスによって参照されますが、まだアプリケーションに直接使用されておらず、リフレクションによってのみ使用されています。
私は、この特定のクラス、マッピングのために特別に扱うことに決めました:
org.mypckg.Helper -> gh6
...もちろん、アプリ内でリフレクション呼び出しを変更しました:
forName("gh6")
マッピング入力に問題はないようですが、マッピング ルール自体は、クラスの削除を防ぐのに十分ではありません。さらに、-keep スイッチを使用してクラスを保持することはできません。これは、元の名前 (org.mypckg.Helper) を使用してクラスを保持するためです。これは望ましくありません。
何らかの理由で、プロジェクト内でクラスを手動で 'gh6' に屈折 (名前変更) することはできません。