簡體   English   中英

Genson與Android-Proguard配置

[英]Genson with Android - Proguard config

我在Android Project中使用proguard config遇到問題。 我正在使用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)

即使datamodel在keep類中,也會發生這種情況。 我嘗試過使用keep類,classmember等進行所有配置。我還能做什么?

編輯

我還知道什么:

  • 我嘗試將班級與項目中的所有班級合並。
  • 我和genson一起上課(-keep class com.owlike.genson。** {*;})
  • 我的班級的Instanceof表明它是com.owlike.genson.Converter的實例

解決該問題的方法是添加-keepattributes簽名

如果正在使用注釋,則也應啟用此選項-keepattributes * Annotation *

此外,還必須提供Genson進行Ser / de處理的應用程序類:-keep類com.mypackage.model。** {*; }

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

將該行添加到您的ProGuard配置中。

-keep [,modifier,...] class_specification
指定要保留為代碼入口點的類和類成員(字段和方法)。 例如,為了保留應用程序,您可以指定主類及其主方法。 為了處理庫,您應該指定所有可公開訪問的元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM