java - 导致 java.lang.RuntimeException 的格式错误的 json
问题描述
我正在尝试使用 android studio 为 whatsapp 构建一个简单的贴纸应用程序。我不知道为什么它说有一个邮件格式的 json 文件。这是 logcat 上的错误(可能是其他错误,例如 apk 的错误名称或其他错误)
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.javiermilei.stickers, PID: 5574
java.lang.RuntimeException: Unable to get provider com.javiermilei.stickers.StickerContentProvider: java.lang.RuntimeException: contents.json file has some issues: Use JsonReader.setLenient(true) to accept malformed JSON at line 17 column 10
at android.app.ActivityThread.installProvider(ActivityThread.java:5923)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:5490)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5429)
at android.app.ActivityThread.-wrap2(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1564)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6186)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
Caused by: java.lang.RuntimeException: contents.json file has some issues: Use JsonReader.setLenient(true) to accept malformed JSON at line 17 column 10
at com.javiermilei.stickers.StickerContentProvider.readContentFile(StickerContentProvider.java:149)
at com.javiermilei.stickers.StickerContentProvider.getStickerPackList(StickerContentProvider.java:155)
at com.javiermilei.stickers.StickerContentProvider.onCreate(StickerContentProvider.java:90)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1751)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1726)
at android.app.ActivityThread.installProvider(ActivityThread.java:5920)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:5490)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5429)
at android.app.ActivityThread.-wrap2(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1564)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6186)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
Caused by: android.util.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 17 column 10
at android.util.JsonReader.syntaxError(JsonReader.java:1159)
at android.util.JsonReader.checkLenient(JsonReader.java:838)
at android.util.JsonReader.nextInObject(JsonReader.java:660)
at android.util.JsonReader.peek(JsonReader.java:349)
at android.util.JsonReader.hasNext(JsonReader.java:319)
at com.javiermilei.stickers.ContentFileParser.readStickers(ContentFileParser.java:145)
at com.javiermilei.stickers.ContentFileParser.readStickerPack(ContentFileParser.java:106)
at com.javiermilei.stickers.ContentFileParser.readStickerPacks(ContentFileParser.java:47)
at com.javiermilei.stickers.ContentFileParser.parseStickerPacks(ContentFileParser.java:28)
at com.javiermilei.stickers.StickerContentProvider.readContentFile
我在这里找不到错误,据说文件在第 17 行第 10 列有一个邮件表格(根据 logcat)
{
"android_play_store_link": "",
"ios_app_store_link": "",
"sticker_packs": [
{
"identifier": "1",
"name": "Javier Milei",
"publisher": "QBSLC Inc.",
"tray_image_file": "tray_Milei.png",
"publisher_email":"",
"publisher_website": "",
"privacy_policy_website": "",
"license_agreement_website": "",
"stickers": [
{
"image_file": "01_Milei.webp",
},
{
"image_file": "02_Milei.webp",
},
{
"image_file": "03_Milei.webp",
},
{
"image_file": "04_Milei.webp",
},
{
"image_file": "05_Milei.webp",
},
{
"image_file": "06_Milei.webp",
},
{
"image_file": "07_Milei.webp",
},
{
"image_file": "08_Milei.webp",
},
{
"image_file": "09_Milei.webp",
},
{
"image_file": "10_Milei.webp",
},
{
"image_file": "11_Milei.webp",
},
{
"image_file": "12_Milei.webp",
},
{
"image_file": "13_Milei.webp",
}
]
}
]
}
解决方案
You can check if a JSON is valid or not, Use this website for example: https://jsonformatter.curiousconcept.com/
In your case, you have a invalid comma in your sticker entry.
推荐阅读
- python - 在 python 中将 pandas 数据帧转换为 h2oframe 时出现“作业丢失”错误
- python - 使用 Python 3 绕过 UAC
- elasticsearch - 过滤查询中不尊重自定义相似性
- php - 当 url 有 /min 时 laravel 失败
- scikit-learn - 有没有办法扩展最初传递给 SVC 的训练集?
- apache-poi - POI保存失败
- javascript - 使用 Javascript 编辑时间输入触发器
- c++ - 构造函数不用于使用临时变量进行初始化
- c - 符号 -> 在一行代码中实现了什么?
- matlab - matlab过滤函数是否使用所有数据信息