HarmonyOS鸿蒙Next中rnoh_app找不到so库
HarmonyOS鸿蒙Next中rnoh_app找不到so库
在单独的模块har里,已配置
"buildOption": {
"nativeLib": {
"excludeFromHar": false
},
"externalNativeOptions": {
"path": "./src/main/cpp/CMakeLists.txt",
"arguments": "",
"cppFlags": "",
"abiFilters": ["x86_64", "arm64-v8a"]
}
},
打包成功,但是运行进入ReactNative页面报错
更多关于HarmonyOS鸿蒙Next中rnoh_app找不到so库的实战教程也可以访问 https://www.itying.com/category-93-b0.html
4 回复
页面报错,有异常信息么
更多关于HarmonyOS鸿蒙Next中rnoh_app找不到so库的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
位置有没有错放?HAR模块的so库必须存放在src/main/libs/<abi>
目录下(如arm64-v8a
或x86_64
),且结构需与目标设备ABI架构严格匹配的。。。还有就是HAR模块根目录的oh-package.json5
中添加依赖声明
"dependencies": {
"your_library": "file:./src/main/cpp/types/your_library"
}
暂时想到这么多。。。
在HarmonyOS Next中,rnoh_app找不到so库可能由以下原因导致:
- 动态库未正确打包到HAP中,需确认build-profile.json5中配置了对应模块的nativeLibraryPath
- 动态库ABI架构不匹配,检查设备CPU架构与libs目录下子目录(armeabi-v7a/arm64-v8a)是否一致
- 动态库依赖未满足,使用ldd工具检查so文件的完整依赖链
- 权限问题,确认在module.json5中声明了需要的权限
解决方法:
- 检查动态库路径配置
- 验证ABI兼容性
- 确保所有依赖可用
- 确认权限声明完整
这个问题通常是由于HAR模块中的SO库没有被正确打包到最终应用中导致的。根据你的配置,虽然已经设置了excludeFromHar: false
,但还需要检查以下几点:
- 确保在HAR模块的
build-profile.json5
中正确配置了native库路径和ABI过滤:
"buildOption": {
"napiLib": {
"path": "./src/main/cpp/CMakeLists.txt",
"abiFilters": ["arm64-v8a", "x86_64"]
}
}
- 在主模块的
build-profile.json5
中需要添加对HAR模块的依赖:
"dependencies": {
"yourHarModule": "file:../yourHarModule"
}
-
检查CMakeLists.txt是否正确配置了输出路径,确保SO库会被生成到正确的libs目录下。
-
如果问题仍然存在,可以尝试:
- 清理项目并重新构建
- 检查构建日志确认SO库是否被正确打包
- 查看设备上的应用安装目录下是否存在对应的SO文件,