簡體   English   中英

在將json轉換為列表時釋放構建問題

[英]Release build issues in converting json to list

我在main / assets文件夾中有一個json文件 -

[
  {
    "topic": "Studies",
    "subMessage": "....",
    "people": [
      ....
    ]
  },
  {
    "topic": "....",
    "subMessage": "...",
    "people": []
  }
]

我使用下面的方法來解析json並返回我的自定義列表 -

final List<MyList> readJson() {
        try {
            InputStream raw = context.getAssets().open(context.getResources().getString(R.string.read_the_json)); 
            Reader reader = new InputStreamReader(raw, "UTF-8);
            return new Gson().fromJson(reader, new TypeToken<List<MyList>>() {
            }.getType());
        } catch (Exception e) {
            Log.e(TAG, "Error : " + e.getMessage());
            return null;
        }
    }

對於Release版本,我有minifyEnabled true 但是對於調試構建它是錯誤的。

我發現如果我在發布版本中將minifyEnabled設置為false它可以工作,但我需要proguard用於發布版本。

問題出在Release build中,方法返回me [][] 但是在調試版本中,該方法會返回JSON中的值。

可能是什么問題呢?

之所以發生是因為proguard工具修改了你的課程。 您需要阻止proguard混淆模型類。

不太好但最簡單的方法:

  • 使所有模型類(如MyList實現Serializable接口。

  • 然后在proguard-rules.pro文件中添加以下行:

    -keepclassmembers class * implements java.io.Serializable { *; }

更好的方法:

  • 直接在proguard-rules.pro文件中包含您的模型類。 例如。

    -keepclassmembers class com.example.MyList { *; }

暫無
暫無

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

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