HarmonyOS 鸿蒙Next中libwebview_napi闪退问题

HarmonyOS 鸿蒙Next中libwebview_napi闪退问题 我这里有一个Crash,从log上看,好像是libwebview_napi相关,有人知道原因吗?

#00 pc 00000000000981cc /system/lib64/module/web/libwebview_napi.z.so(OHOS::NWeb::WebSchemeHandler::GetArkWebSchemeHandler(OHOS::NWeb::WebSchemeHandler*)+248)(1ce856b5ca0d047b5934fff990f1d0d4)

#01 pc 00000000000988e8 /system/lib64/module/web/libwebview_napi.z.so(OHOS::NWeb::WebSchemeHandler::~WebSchemeHandler()+184)(1ce856b5ca0d047b5934fff990f1d0d4)

#02 pc 000000000006b110 /system/lib64/module/web/libwebview_napi.z.so(OHOS::NWeb::NapiWebSchemeHandler::JS_Constructor(napi_env__, napi_callback_info__)::$_3::invoke(napi_env, void, void*)+32)(1ce856b5ca0d047b5934fff990f1d0d4)

#03 pc 00000000000567d4 /system/lib64/platformsdk/libace_napi.z.so(ArkNativeReference::~ArkNativeReference()+100)(e64c8633400073729159d5f939287257)

#04 pc 0000000000056a40 /system/lib64/platformsdk/libace_napi.z.so(ArkNativeReference::~ArkNativeReference()+16)(e64c8633400073729159d5f939287257)

#05 pc 0000000000074de8 /system/lib64/platformsdk/libace_napi.z.so(NativeReferenceManager::~NativeReferenceManager()+56)(e64c8633400073729159d5f939287257)

#06 pc 0000000000074e10 /system/lib64/platformsdk/libace_napi.z.so(NativeReferenceManager::~NativeReferenceManager()+16)(e64c8633400073729159d5f939287257)

#07 pc 0000000000068368 /system/lib64/platformsdk/libace_napi.z.so(NativeEngine::Deinit()+248)(e64c8633400073729159d5f939287257)

#08 pc 0000000000040968 /system/lib64/platformsdk/libace_napi.z.so(ArkNativeEngine::~ArkNativeEngine()+152)(e64c8633400073729159d5f939287257)

#09 pc 0000000000040b60 /system/lib64/platformsdk/libace_napi.z.so(ArkNativeEngine::~ArkNativeEngine()+16)(e64c8633400073729159d5f939287257)

#10 pc 0000000000038118 /system/lib64/module/libtaskpool.z.so(Commonlibrary::Concurrent::TaskPoolModule::Worker::ReleaseWorkerThreadContent()+508)(5f92d1a1d33e6a9f54ee52d0e112d20f)

#11 pc 00000000000369d8 /system/lib64/module/libtaskpool.z.so(Commonlibrary::Concurrent::TaskPoolModule::Worker::ExecuteInThread(void const*) (.cfi)+844)(5f92d1a1d33e6a9f54ee52d0e112d20f)

#12 pc 00000000000320c4 /system/lib64/module/libtaskpool.z.so(Commonlibrary::Concurrent::TaskPoolModule::TaskRunner::TaskInnerRunner::Run()+72)(5f92d1a1d33e6a9f54ee52d0e112d20f)


更多关于HarmonyOS 鸿蒙Next中libwebview_napi闪退问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

操作系统/版本
更完整的crash 日志
工程机版本:(如:NOH-AN00 204.0.0.65(SP1C00E67R1P12))
IDE版本:xxx(如:DevEco Studio 4.0.3.600)
SDK版本:xxx(如:OpenHarmony 4.0.10.10)
我们将在收到信息后尽快处理。

更多关于HarmonyOS 鸿蒙Next中libwebview_napi闪退问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在5.1版本后没有遇到这个问题,可能是已经修复了

在HarmonyOS鸿蒙Next中,libwebview_napi闪退问题可能与WebView组件的初始化或资源加载有关。常见原因包括内存不足、资源文件损坏或API调用不当。建议检查WebView的初始化代码,确保资源路径正确,并监控内存使用情况。此外,查看日志文件以获取更多错误信息,有助于定位问题根源。

从错误日志来看,这是一个典型的NAPI引用管理问题导致的崩溃。主要发生在WebSchemeHandler析构过程中,与NAPI对象生命周期管理相关。

关键点分析:

  1. 崩溃发生在WebSchemeHandler析构调用链中(#01)
  2. 涉及NAPI引用释放过程(#03-#09)
  3. 最终在TaskPool工作线程中触发(#10-#12)

可能原因:

  1. WebSchemeHandler对象被提前释放,而NAPI层仍持有引用
  2. 跨线程的NAPI对象访问问题
  3. 未正确处理NAPI对象的生命周期

建议检查:

  1. 确保WebSchemeHandler生命周期与NAPI包装对象同步
  2. 检查是否在非JS线程直接操作了NAPI对象
  3. 确认所有napi_ref都正确释放

这种问题通常需要检查相关NAPI包装类的实现,特别是析构函数和引用管理部分。

回到顶部