1

Android プロジェクトのプロガード構成に問題があります。Genson を使用して、受信する JSON データを解析しています。サーバー側にもGensonがあるため、高速であり、追加の構成やデシリアライザーは必要ありません.

デバッグ モードではすべて正常に動作しますが、リリースでは、proguard では動作しません。

残念ながら、実行時にエラーが発生しました:

FATAL EXCEPTION: main
Process: com.es.mobile.meedy, PID: 16650
java.lang.UnsupportedOperationException: Couldn't find parameter at 0 from type interface com.owlike.genson.Converter , you should first locate the parameterized type, expand it and then use typeOf.
    at com.owlike.genson.reflect.TypeUtil.typeOf(Unknown Source)
    at com.owlike.genson.GensonBuilder.withConverters(Unknown Source)
    at com.mypackage.f.k.a(Unknown Source)
    at com.a.a.b.n.a(Unknown Source)
    at com.a.a.i.run(Unknown Source)
    at android.os.Handler.handleCallback(Handler.java:733)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:136)
    at android.app.ActivityThread.main(ActivityThread.java:5086)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
    at dalvik.system.NativeStart.main(Native Method)

データモデルが保持クラスにある場合でも発生します。keep class、classmembers などを使用してすべての構成を試しました。他に何ができますか?

編集

他に知っていること:

  • プロジェクト内のすべてのクラスでクラスを維持しようとしました。
  • 私はgensonでクラスを維持しています(-keep class com.owlike.genson.** { *; })
  • 私のクラスの Instanceof は、それが com.owlike.genson.Converter のインスタンスであることを示しています
4

2 に答える 2

0
-keep class com.owlike.genson.*{ *; }  

その行を ProGuard 構成に追加します。

-keep [,modifier,...] class_specification
コードへのエントリ ポイントとして保持するクラスとクラス メンバー (フィールドとメソッド) を指定します。たとえば、アプリケーションを保持するために、メイン クラスとそのメイン メソッドを指定できます。ライブラリを処理するには、公開されているすべての要素を指定する必要があります。

于 2014-12-08T17:01:21.847 に答える