uni-app android端断网运行一段时间app会闪退

uni-app android端断网运行一段时间app会闪退

开发环境 版本号 项目创建方式
Windows 7 HBuilderX

操作步骤:

  • 断网调试app

预期结果:

  • 一段时间会闪退

实际结果:

  • 一段时间会闪退

bug描述:

  • uniapp是不是有什么东西一直在请求网络,我代码里面没有联网调试需求,然后网络请求失败一直往本地变量表里面堆,最后导致jni溢出
JNI ERROR (app bug): local reference table overflow (max=512)
2022-07-08 11:52:12.576 27810-27833/com.HBuilder.UniPlugin A/art: vendor/intel/art-extension/runtime/indirect_reference_table.cc:132] local reference table dump:
2022-07-08 111:52:12.576 27810-27833/com.HBuilder.UniPlugin A/art: vendor/intel/art-extension/runtime/indirect_reference_table.cc:132]   Last 10 entries (of 512):
2022-07-08 11:52:12.576 27810-27833/com.HBuilder.UniPlugin A/art: vendor/intel/art-extension/runtime/indirect_reference_table.cc:132]       511: 0x12d19b90 java.lang.String ""
2022-07-08 11:52:12.576 27810-27833/com.HBuilder.UniPlugin A/art: vendor/intel/art-extension/runtime/indirect_reference_table.cc:132]       510: 0x12e0db60 java.net.UnknownHostException
2022-07-08 11:52:12.576 27810-27833/com.HBuilder.UniPlugin A/art: vendor/intel/art-extension/runtime/indirect_reference_table.cc:132]       509: 0x12e0db60 java.net.UnknownHostException
2022-07-08 11:52:12.576 27810-27833/com.HBuilder.UniPlugin A/art: vendor/intel/art-extension/runtime/indirect_reference_table.cc:132]       508: 0x12ea7978 com.android.okhttp.internal.huc.HttpsURLConnectionImpl
2022-07-08 11:52:12.576 27810-27833/com.HBuilder.UniPlugin A/art: vendor/intel/art-extension/runtime/indirect_reference_table.cc:132]       507: 0x12f74548 java.net.URL
2022-07-08 11:52:12.576 27810-27833/com.HBuilder.UniPlugin A/art: vendor/intel/art-extension/runtime/indirect_reference_table.cc:132]       506: 0x6f87d120 java.net.Proxy
2022-07-08 11:52:12.576 27810-27833/com.HBuilder.UniPlugin A/art: vendor/intel/art-extension/runtime/indirect_reference_table.cc:132]       505: 0x12e035a0 java.net.UnknownHostException
2022-07-08 11:52:12.576 27810-27833/com.HBuilder.UniPlugin A/art: vendor/intel/art-extension/runtime/indirect_reference_table.cc:132]       504: 0x12e035a0 java.net.UnknownHostException
2022-07-08 11:52:12.576 27810-27833/com.HBuilder.UniPlugin A/art: vendor/intel/art-extension/runtime/indirect_reference_table.cc:132]       503: 0x12ea7c38 com.android.okhttp.internal.huc.HttpsURLConnectionImpl
2022-07-08 11:52:12.576 27810-27833/com.HBuilder.UniPlugin A/art: vendor/intel/art-extension/runtime/indirect_reference_table.cc:132]       502: 0x12f493c0 java.net.URL

更多关于uni-app android端断网运行一段时间app会闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

我使用的是离线打包,是我Android 离线SDK版本太低

更多关于uni-app android端断网运行一段时间app会闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html


看日志是一个插件导致的 com.HBuilder.UniPlugin 具体需要你自行排查

从错误日志来看,确实是由于JNI本地引用表溢出导致的闪退。这个问题通常是由于以下原因导致的:

  1. 虽然你没有主动发起网络请求,但uni-app框架或某些插件可能在后台进行网络检测或请求(如版本检查、统计上报等)

  2. 错误日志中出现了大量UnknownHostExceptionHttpsURLConnectionImpl的引用,说明确实有网络请求失败后没有正确释放资源

解决方案:

  1. 检查manifest.json中的模块配置,关闭不必要的网络相关模块

  2. 在main.js中加入以下代码禁用默认的网络检查:

// 禁用uni-app的自动更新检查
uni.setBackgroundFetchToken({token: 'none'})
回到顶部