Android “;发布”;仅构建模式

Android “;发布”;仅构建模式,android,gson,proguard,retrofit2,Android,Gson,Proguard,Retrofit2,这很奇怪,但是序列化在调试构建模式以及除一个之外的所有API响应中都做得非常好。但在发布模式下,它抛出非法参数异常 以下是此异常的完整日志: FATAL EXCEPTION: main Process: com.example.sampleapp, PID: 30480 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.sampleapp/com.example.sampleapp.act

这很奇怪,但是序列化在调试构建模式以及除一个之外的所有API响应中都做得非常好。但在发布模式下,它抛出非法参数异常

以下是此异常的完整日志:

FATAL EXCEPTION: main Process: com.example.sampleapp, PID: 30480 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.sampleapp/com.example.sampleapp.activity.ManageStoreActivity}: java.lang.IllegalArgumentException: Unable to create converter for class com.example.sampleapp.model.seller.SellerStoreFormData
  for method ApiInterface.getSellerInfoData
  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
  at android.app.ActivityThread.-wrap11(ActivityThread.java)
  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
  at android.os.Handler.dispatchMessage(Handler.java:102)
  at android.os.Looper.loop(Looper.java:148)
  at android.app.ActivityThread.main(ActivityThread.java:5417)
  at java.lang.reflect.Method.invoke(Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)


 Caused by: java.lang.IllegalArgumentException: Unable to create converter for class com.example.sampleapp.model.seller.SellerStoreFormData
  for method ApiInterface.getSellerInfoData
  at retrofit2.ServiceMethod$Builder.methodError(Unknown Source)
  at retrofit2.ServiceMethod$Builder.createResponseConverter(Unknown Source)
  at retrofit2.ServiceMethod$Builder.build(Unknown Source)
  at retrofit2.Retrofit.loadServiceMethod(Unknown Source)
  at retrofit2.Retrofit$1.invoke(Unknown Source)
  at java.lang.reflect.Proxy.invoke(Proxy.java:393)
  at $Proxy0.getSellerInfoData(Unknown Source)
  at com.example.sampleapp.connection.a.i(Unknown Source)
  at com.example.sampleapp.activity.ManageStoreActivity.onStart(Unknown Source)
  at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1237)
  at android.app.Activity.performStart(Activity.java:6253)
  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
    ... 9 more


 Caused by: java.lang.IllegalArgumentException: class com.example.sampleapp.model.seller.SellerStoreFormData declares multiple JSON fields named f
  at com.google.a.b.a.i.a(Unknown Source)
  at com.google.a.b.a.i.a(Unknown Source)
  at com.google.a.e.a(Unknown Source)
  at retrofit2.converter.gson.GsonConverterFactory.responseBodyConverter(Unknown Source)
  at retrofit2.Retrofit.nextResponseBodyConverter(Unknown Source)
  at retrofit2.Retrofit.responseBodyConverter(Unknown Source)
    ... 20 more
到目前为止我尝试了什么?

  • 我尝试并查找了同一个和父级中的多个JSON字段 但没有找到任何
  • 已检查每个字段的@SerializedName是否不同
  • 我还在发布模式下启用了proguard。


    它在早期工作正常(没有启用proguard),我没有收到任何编译时错误。

    如果调试模式正在工作,并且发布是问题所在,那么很可能是proguard的问题。 尝试从混淆中排除SellerStoreFormData


    此外,请检查您是否已准备就绪,如果没有,请添加。

    如果调试模式正在工作,并且发布是问题所在,那么最有可能的是这是一个proguard问题。 尝试从混淆中排除SellerStoreFormData


    而且,检查是否有,如果没有添加。

    在model
    SellerStoreFormData
    @aksacha中有两个同名的
    JSON
    字段,我已经检查了多次,但都找不到。甚至在父模型中也没有显示您的
    SellerStoreFormData
    模型代码。.在模型中有两个同名的
    JSON
    字段model
    SellerStoreFormData
    @aksacha我已经检查了多次,但都找不到。甚至在父模型中也找不到。请显示您的
    SellerStoreFormData
    模型代码。谢谢,我已经维护了一个正确的proguard文件。但是更新它是有效的。这是愚蠢的,因为缺少分号。由于proguard配置的原因,该消息可能会产生误导。谢谢,我已经维护了一个正确的proguard文件。但是更新它是有效的。这是愚蠢的,因为缺少分号。由于proguard配置的原因,该消息可能具有误导性。