1

プロガードを使用したAndroidプロジェクトでクリッターシズムライブラリを使用しています。アプリをコンパイルすると、コンソールに次のエラーが表示されます。

警告: crittercism.android.c: クラス org.json.JSONArray で参照されているメソッド 'org.json.JSONArray put(long)' が見つかりません

-dontwarn 行を追加してこのエラーを回避できますが、クリッターシズムは機能しません。次の行でプロガードファイルを構成するために、クリッターシズムのドキュメントを読みました。

-keep public class com.crittercism.**
-keepclassmembers public class com.crittercism.**{ *; }

しかし、私はまだそのエラーがあります。

4

1 に答える 1

1

Androidフレームワークと外部ライブラリファイル(あなたの場合はそのcrittercism libファイル)の両方に存在するクラスがある場合、Proguardエラーが発生します。これはあいまいさをプロガードに引き起こします。

(-keep public class com.crittercism.*) ではなく、proguard に保持する正確なクラスを指定する必要があります (-keep public class com.crittercism.abcd など)。競合の原因となっている正確なクラスを特定します。

org.json.JSONArray が Android フレームワークに存在することは明らかであり、crittercism API にも存在する可能性があります。

org.jason.JSONArray が crittercism ライブラリに存在する場所を特定し、次のように proguard ファイルに含めます。

-パブリック クラス com.crittercism...JSONArray を保持します。

于 2014-05-27T10:31:12.840 に答える