40

こんにちは、私は Android アプリを作成しており、アプリケーションを難読化するために Proguard をセットアップしました。ただし、クラスローダーを使用して、さまざまな拡張機能をアプリケーションに動的にロードします。問題は、名前が変更された場合、これらが正しくロードされないことです。Proguard が特定のクラス名を難読化しないようにするにはどうすればよいですか?

4

4 に答える 4

45

-keepnamesproguard.cfgでオプションを使用します

マニュアルを参照して ください https://www.guardsquare.com/en/proguard/manual/usage#keepoptions :

-keepnamesクラス仕様

class_specification の-keep,allowshrinking

縮小フェーズで削除されない場合、名前が保持されるクラスとクラス メンバーを指定します。たとえば、Serializable インターフェイスを実装するクラスのすべてのクラス名を保持して、処理されたコードが最初にシリアル化されたクラスとの互換性を保つことができます。まったく使用されていないクラスは引き続き削除できます。難読化する場合にのみ適用されます。

于 2012-06-10T19:55:08.243 に答える
41

これにより、クラス名がそのまま保持されます。

-keepnames class com.somepackage.* 
于 2014-09-25T18:25:11.067 に答える