HarmonyOS鸿蒙Next中为什么调用崩溃api解析json数据会发生错误

HarmonyOS鸿蒙Next中为什么调用崩溃api解析json数据会发生错误

不调用的话则不会出现错误

Stack trace:  

java.lang.RuntimeException: An error occurred while executing doInBackground()

at android.os.AsyncTask$AsyncFutureTask.done(AsyncTask.java:429)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
at java.util.concurrent.FutureTask.run(FutureTask.java:271)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:929)

Caused by: g.t.c.s: java.lang.NumberFormatException: For input string: "送花花"
at g.t.c.w.n.n$b.e(SourceFile:4)
at g.t.c.w.n.n$b.b(SourceFile:1)
at g.t.c.w.n.i$a.a(SourceFile:1)
at g.t.c.w.n.i$b.b(SourceFile:9)
at g.t.c.e.g(SourceFile:6)
at g.t.c.e.h(SourceFile:2)
at g.t.c.e.j(SourceFile:2)
at g.t.c.e.i(SourceFile:1)
at g.n0.a.a.g.j.a.a(SourceFile:2)
at com.yacey.android.shorealnotes.models.entity.Note.a(SourceFile:1)
at g.n0.a.a.f.d.f(SourceFile:4)
at g.n0.a.a.f.d.h(SourceFile:1)
at g.n0.a.a.f.d.i(SourceFile:3)
at g.n0.a.a.a.k.i.a(SourceFile:2)
at g.n0.a.a.a.k.i.doInBackground(SourceFile:1)
at android.os.AsyncTask$3.call(AsyncTask.java:389)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
... 3 more

Caused by: java.lang.NumberFormatException: For input string: "送花花"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.lang.Double.parseDouble(Double.java:538)
at g.t.c.y.a.T(SourceFile:15)
at g.t.c.w.n.n$b.e(SourceFile:3)
... 19 more

User actions: 

2021-09-29 18:31:18: SplashActivity created
2021-09-29 18:31:18: GuideActivity created
2021-09-29 18:31:19: GuideActivity resumed
2021-09-29 18:31:19: SplashActivity destroyed
2021-09-29 18:31:20: GuideActivity paused
2021-09-29 18:31:20: MainActivity created
2021-09-29 18:31:21: MainActivity resumed
2021-09-29 18:31:21: GuideActivity destroyed
2021-09-29 18:31:23: MainActivity paused
2021-09-29 18:31:23: SettingsActivity created
2021-09-29 18:31:23: SettingsActivity resumed
2021-09-29 18:31:25: SettingsActivity paused
2021-09-29 18:31:25: AcpActivity created
2021-09-29 18:31:25: AcpActivity resumed
2021-09-29 18:31:25: AcpActivity paused
2021-09-29 18:31:26: SettingsActivity resumed
2021-09-29 18:31:28: AcpActivity destroyed

更多关于HarmonyOS鸿蒙Next中为什么调用崩溃api解析json数据会发生错误的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

楼主你好,可以描述下json数据具体是怎解析的,从错误日志“Caused by: g.t.c.s: java.lang.NumberFormatException: For input string: "送花花"可以看出,是类型转换异常,是把string转换成数值类型时的异常。

更多关于HarmonyOS鸿蒙Next中为什么调用崩溃api解析json数据会发生错误的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这是我的json储存代码

```java
private static void newBackup(File file, Note note) {
  File newBackup = createBackup(file, note);
  try {
    FileUtils.write(newBackup, note.toJSON(),"UTF-8");
  } catch (IOException e) {
    LogUtils.d("Failed to backup note: " + note.get_id());
  }
}

调用后api前后生成的json数据

{
  "q": false,
  "b": "秋夕",
  "c": "银烛秋光冷画屏,轻罗小扇扑流萤。\n天阶夜色凉如水,卧看牵牛织女星。",
  "d": 1622694273418,
  "e": 1622694480056,
  "f": false,
  "g": false,
  "h": false,
  "j": false,
  "l": {
    "b": 1633006912411,
    "c": "九月",
    "d": "",
    "e": "-10167017",
    "f": 0
  },
  "m": false,
  "n": false,
  "o": []
}
{
  "p": false,
  "a": "秋夕",
  "b": "银烛秋光冷画屏,轻罗小扇扑流萤。\n天阶夜色凉如水,坐看牵牛织女星。",
  "c": 1633097084873,
  "d": 1633097084873,
  "e": false,
  "f": false,
  "g": false,
  "i": false,
  "l": false,
  "m": false,
  "n": []
}

开条线程试试?

用的哪个json

org.json,不知道为什么键和值的对应关系被修改,删除崩溃api后恢复正常

欢迎开发小伙伴们进来帮帮楼主

在HarmonyOS鸿蒙Next中,调用崩溃API解析JSON数据时发生错误,可能是由于以下几个原因:

  1. API兼容性问题:鸿蒙Next可能对某些API进行了更新或废弃,导致旧版本的API调用在新系统中无法正常工作。如果使用的API在鸿蒙Next中已被修改或移除,调用时可能会引发崩溃。

  2. JSON数据格式问题:如果传入的JSON数据格式不符合预期,解析时可能会抛出异常。例如,JSON数据中缺少必要的字段、字段类型不匹配或数据格式错误,都可能导致解析失败。

  3. 内存管理问题:鸿蒙Next可能在内存管理机制上有所调整,如果API调用过程中内存分配或释放不当,可能会导致程序崩溃。特别是在处理大量数据时,内存泄漏或越界访问可能会引发问题。

  4. 线程安全问题:如果API调用涉及多线程操作,且未正确处理线程同步,可能会导致数据竞争或死锁,进而引发崩溃。

  5. 系统权限问题:鸿蒙Next可能对某些API的调用权限进行了限制,如果应用没有获取相应的权限,调用时可能会失败或崩溃。

  6. API调用顺序问题:某些API可能依赖于其他API的调用结果,如果调用顺序不正确,可能会导致数据解析失败或程序崩溃。

  7. 系统资源限制:鸿蒙Next可能对系统资源的使用进行了更严格的限制,如果API调用过程中超出了资源限制,可能会导致崩溃。

  8. API内部实现问题:鸿蒙Next中某些API的内部实现可能存在缺陷或未处理异常情况,导致在特定条件下调用时发生崩溃。

要解决这些问题,需要检查API的调用方式、JSON数据的格式、内存管理、线程同步、系统权限、调用顺序以及系统资源使用情况,并确保它们符合鸿蒙Next的要求。

在HarmonyOS鸿蒙Next中,调用崩溃API解析JSON数据时发生错误,可能原因包括:

  1. JSON格式不符合标准,如缺少引号或逗号;
  2. 数据类型不匹配,如将字符串误认为数字;
  3. 内存管理问题,如未正确释放资源;
  4. API使用不当,如未正确处理异常或回调。

建议检查JSON数据格式、数据类型,并确保API调用符合规范,同时使用调试工具定位具体错误。

回到顶部