私はこのプロジェクトでKofaxを使用しています。多くのReflectionとRobogiuiceを使用しています。 Dexguardを使用してコードを難読化しています。私たちが持つ問題の1つは、プライベートコンストラクタが削除されたことです。私はすでに私のコードでこれを持っています:プロガードプライベートコンストラクタを維持する
-keepclassmembers class * {
private <init>(...);
}
しかし、私のクラスのコンストラクタのいくつかは引き続き削除されています。
1) Could not find a suitable constructor in >com.kofax.mobile.sdk.capture.MainModule$ReflectionMakeSize. Classes must have >either one (and only one) constructor annotated with @Inject or a zero-argument >constructor that is not private. at >com.kofax.mobile.sdk.capture.MainModule$ReflectionMakeSize.class(Unknown >Source) at >com.kofax.mobile.sdk.capture.MainModule.configure(:145)
これを修正する方法は誰でも知っていますか?
EDIT。
私はちょうどprivate static class
のコンストラクタだけが削除され、他のクラスのコンストラクタはまだそこにあることを知りました。
誰でも知っていますか?
ありがとうございました。しかし、取り除かれたコードはライブラリ内にあるので、 '@ keep'アノテーションを追加することはできません – Kent
@Keepはメソッドを保持するだけでなく、クラス全体を保持します。 –
[ドキュメンテーション](https://developer.android.com/reference/android/support/annotation/Keep.html)には、 '@ Keep'もメソッドに適用されることが記載されています。もちろん、クラスから1つのメソッドを保持する場合は、クラス全体にリフレクションを保持する必要がありますが、それは明らかです。 –