3

Android フレームワークObjectAnimatorインスタンスで使用されるメソッドがあります。したがって、それらは未使用のように見え (リフレクションによって使用されます)、SuppressWarnings("unused")注釈を追加するので、IntelliJ は警告を表示しません。ただし、ProGuard は引き続きそれらを削除するため、削除しないように明示的に伝える必要があります。これは面倒で冗長に思えます (DRY に違反します)。でメソッドを削除しないように ProGuard を構成することは可能SuppressWarnings("unused")ですか?

4

3 に答える 3

4

一部のクラスとメンバー (フィールドとメソッド) を保持するように ProGuard に指示するオプションについては、公式ドキュメントhttp://proguard.sourceforge.net/manual/usage.html#keepoptionsで説明されています。

次を使用して、クラスメンバーを保持するようにProGuardに指示できます。

-keepclassmembers class_specification

あなたは次のclass_specificationようになります:

class * {
    @java.lang.SuppressWarnings <methods>;
}

したがって、あなたproguard.cfgには次のようなものが必要です:

-keepclassmembers class * {
    @java.lang.SuppressWarnings <methods>;
}
于 2014-03-15T20:07:08.580 に答える
1

Dexguard で同様の剥ぎ取りの問題に直面したことがあります。私はこれをどこかに置いて、本当に汚い方法で解決しました:

if(System.currentTimeMillis() < 0 ){ //never happens
   //..
   //TODO directly invoke stripped methods
   //..
}
于 2014-03-15T19:41:33.350 に答える