HarmonyOS 只增加curl的配置没做其他改动的情况下NAPI的APP闪退

curl的配置没做其他改动的情况下NAPI的APP闪退,请问应该怎么解决?

按照DevEco Studio 的NativeC++模板创建一个新项目后,没修改任何代码,添加curl的配置。

curl的编译继承参考链接:

https://gitee.com/openharmony-sig/tpc_c_cplusplus/blob/master/thirdparty/curl/docs/hap_integrate.md

添加配置后能正常编译并在手机上运行,但是点击字符“Hello Word”后APP闪退。

DevEco Studio的崩溃日志显示的代码没修改过。

curl的编译方法参考链接:

https://gitee.com/openharmony-sig/tpc_c_cplusplus

目前怀疑是so的依赖关系有问题,但是使用DevEco Studio的自带的hdc无法使用ldd,大多数目录也不能使用ls查看。自带的hdc所在目录为:

DevEco Studio\sdk\HarmonyOS-NEXT-DB1\openharmony\toolchains\

HarmonyOS
2024-12-25 12:31:19
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

该报错应该是没有正确链接上so导致的:

1、首先需要在终端中输入 readelf -d entry/libs/arm64-v8a/libxxx.so来查找soname,确认下动态库的soname,将entry/libs/${OHOS_ARCH}下的so改名为这个soname

2、Cmakelist中使用三方库中的路径,使用如下的方式链接so:

target_link_libraries(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/cJSON/${OHOS_ARCH}/lib/libcjson.so)

而不是选择

${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/${OHOS_ARCH}/libcjson.so)

的路径,这样链会导致名字和带版本号的so不统一

3、请确保entry/libs在不同框架(如arm64_v8a、x86_64)下的so与src/main/cpp/thirdparty/cJSON下对应框架下的so文件大小一致且文件名无误

具体可以参考链接:

https://gitee.com/openharmony-sig/tpc_c_cplusplus/blob/master/lycium/doc/app_calls_third_lib.md

分享
微博
QQ
微信
回复
2024-12-25 13:51:01
相关问题
加载FFMpeg后APP出现退
453浏览 • 1回复 待解决
HarmonyOS 主线程耗时任务,app退
292浏览 • 1回复 待解决
HarmonyOS 手机静音情况下,无法震动
200浏览 • 1回复 待解决