有没有HarmonyOS鸿蒙Next工程师大佬能教教我这个怎么修复呀

有没有HarmonyOS鸿蒙Next工程师大佬能教教我这个怎么修复呀 一直出现这个问题,问ai试了各种方法也还是不行

cke_300.png

cke_948.png

cke_1681.png


更多关于有没有HarmonyOS鸿蒙Next工程师大佬能教教我这个怎么修复呀的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

1.楼主这个是个显卡驱动问题,GPU 进程依赖操作系统显卡驱动,如果驱动版本太旧或有 bug,会导致 GPU 进程无法稳定启动。

2.尝试更新显卡驱动到最新稳定版本(NVIDIA / AMD / Intel 集成显卡),如果是笔记本双显卡,尝试切换到集成显卡运行 IDE 或禁用独显的硬件加速。

更多关于有没有HarmonyOS鸿蒙Next工程师大佬能教教我这个怎么修复呀的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


卸载干净,安装DevEco Studio 5.1.1 Release试试https://developer.huawei.com/consumer/cn/download/deveco-studio

卸载重装试试

或者

打开DevEco Studio,点击菜单栏 Help > Find Action

输入并打开 Registry 界面

勾选 jcef.gpu.disable 选项

把IDE升级到5.1.1试试

鸿蒙Next应用开发问题需基于ArkTS/ArkUI框架排查。检查项目配置中是否已正确声明权限、导入所需模块。使用DevEco Studio的日志工具查看具体报错信息,定位问题代码段。

从你提供的日志截图来看,核心问题是 libopenharmony.so 库在加载时找不到其依赖的 libc++_shared.so。具体错误是:

java.lang.UnsatisfiedLinkError: dlopen failed: library "libc++_shared.so" not found: needed by /data/app/~~...==/lib/arm/libopenharmony.so

这是一个典型的 Native 库依赖缺失 问题。在 HarmonyOS Next 中,libopenharmony.so 是系统关键库,它依赖于 C++ 标准库 libc++_shared.so。你的应用在运行时,系统在应用的 lib/arm 目录下找不到这个必需的库。

根本原因: 你的应用在打包时,没有将 libc++_shared.so 库包含到最终的 HAP 包中。这通常发生在你的应用或你依赖的某个 native 库(C/C++ 编写)是使用 C++ 运行时动态链接方式编译的,但相应的依赖库没有被打包。

解决方案:

  1. 检查 build-profile.json5 文件: 这是最可能的原因。你需要确保在 build-profile.json5 文件的 buildOption 部分,没有libc++_shared.so 排除。

    • 错误配置示例(会导致此问题):
      "buildOption": {
        "externalNativeOptions": {
          "path": "./src/main/cpp/CMakeLists.txt",
          "arguments": "",
          "cppFlags": "",
          "abiFilters": ["armeabi-v7a", "arm64-v8a"],
          // 注意下面这行,如果存在且为true,就会排除掉 libc++_shared.so
          "cppRuntime": "system" // 或者 "none"
        }
      }
      
    • 正确配置应该是:
      "buildOption": {
        "externalNativeOptions": {
          "path": "./src/main/cpp/CMakeLists.txt",
          "arguments": "",
          "cppFlags": "",
          "abiFilters": ["armeabi-v7a", "arm64-v8a"],
          // 移除或显式设置为 "shared",这是默认值
          "cppRuntime": "shared"
        }
      }
      
      "cppRuntime": "shared" 会指示构建系统将 libc++_shared.so 打包到你的 HAP 中。
  2. 检查 CMakeLists.txtbuild.gradle (如果是从旧项目迁移): 如果你有本地 C++ 代码(src/main/cpp),检查 CMakeLists.txt 文件,确保没有通过 -static 标志强制静态链接 C++ 运行时,或者错误地设置了 ANDROID_STL

    • 通常,保持默认即可。HarmonyOS Next 的 Native 开发默认使用动态链接的 C++ 运行时。
  3. 检查依赖的第三方 SDK: 如果你集成了第三方提供的、包含 native 库(.so 文件)的 SDK,需要联系该 SDK 的提供方,确认其库是否依赖 libc++_shared.so,以及他们提供的包是否完整。有时他们可能提供了静态链接版本的库,或者需要你手动添加其依赖。

  4. 手动添加库(临时方案,不推荐): 作为快速验证,你可以尝试手动将 libc++_shared.so 库文件放入你项目的正确目录。但这不是标准做法,且可能带来版本冲突。

    • 库文件通常位于 HarmonyOS SDK 的 toolchains/llvm/prebuilt/{host}/sysroot/usr/lib/{abi}/ 目录下。
    • 将其复制到你项目的 src/main/resources/lib/{abi}/ 目录下(例如 src/main/resources/lib/arm64-v8a/)。
    • 注意: 这只是一个调试步骤,用于确认问题。长期解决方案必须是修正构建配置。

操作步骤总结:

  1. 首先,打开你的 build-profile.json5 文件。
  2. 找到 "buildOption" -> "externalNativeOptions" 部分。
  3. 确保其中 没有 "cppRuntime": "system""cppRuntime": "none" 的配置项,或者将其显式改为 "cppRuntime": "shared"
  4. 清理并重新构建你的项目(执行 Build -> Clean ProjectBuild -> Build HAP(s))。
  5. 重新安装并运行应用。

完成以上步骤后,构建系统应该会自动将 libc++_shared.so 打包到你的 HAP 中,运行时找不到库的错误应该就能解决。

回到顶部