如何调试引用的外部so
已有应用hap包entry-default-signed.hap,hap包包名com.example.soliba 要调试的三方源码so(需携带调试信息)liblocalso.so和其hello.cpp源码文件
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HSP/HAR包中如何引用外部编译的so库文件
1010浏览 • 1回复 待解决
通过configuration配置调试so
355浏览 • 1回复 待解决
支持调试本地源码无法编译的so
340浏览 • 1回复 待解决
通过configuration配置调试本地源码无法编译的so
367浏览 • 1回复 待解决
Har 中的cmakelist.txt 如何引用V8引擎的 V8.so
405浏览 • 1回复 待解决
docker 如何挂载外部文件?
2970浏览 • 1回复 待解决
编译出so,推到klv的/system/lib64/module下,在arkts处引用,undefined
381浏览 • 1回复 待解决
BUILD.gn引用第三方so文件报错undefined symbol
2680浏览 • 0回复 待解决
如何使用后缀为so.x.y类型的so库,例如libxxx.so.3.1、libxxx.so.3.1.0
638浏览 • 1回复 待解决
调试模式下 报Cause: Can't find any .so file in current module Solution
532浏览 • 1回复 待解决
外部调用har里的方法,如何跳转页面
570浏览 • 1回复 待解决
匿名内部类如何更新外部类的变量
398浏览 • 0回复 待解决
有了代码签名特性后,开发者的so文件在调试,发布等阶段该如何部署
598浏览 • 1回复 待解决
如何引用非本地目录的HSP
487浏览 • 1回复 待解决
ArkTS FA模型如何实现从外部文件导入数据/写数据到外部文件
2762浏览 • 1回复 待解决
应用侧,引用了java的 paho mqtt,调试时出现端口问题,谁能帮忙解决下
4641浏览 • 1回复 待解决
Page或Component如何支持外部注入Component
410浏览 • 2回复 待解决
如何编译底层的so有懂的吗?
1016浏览 • 1回复 待解决
如何编译鸿蒙使用的libcurl.so?
355浏览 • 1回复 待解决
Dialog 如何设置外部点击并且弹唱不消失
6152浏览 • 3回复 待解决
java如何引用resources资源获得value?
3253浏览 • 1回复 待解决
求大佬告知如何引用HSP库
764浏览 • 1回复 待解决
DevEco Studio开发如何引入.so库
8968浏览 • 1回复 待解决
ArkTS项目如何调用已有SO库?
326浏览 • 1回复 待解决
如何在Native层加载so库
441浏览 • 1回复 待解决
本地环境构造
已有应用hap包entry-default-signed.hap,hap包包名com.example.soliba 要调试的三方源码so(需携带调试信息)liblocalso.so和其hello.cpp源码文件
详细步骤
1、基于本地C++代码构建生成新so库。demo见solibA; solibA做了如下操作:
a、新建solibA工程,新建C++模块取名为localso;在localso的hello.cpp中定义方法并打多个断点;build编译生成so,路径solibA\localso\build\default\intermediates\libs\default\arm64-v8a
b、将arm64-v8a文件夹复制到entry-libs下,即entry\libs\arm64-v8a\liblocalso.so
c、在entry的build-profile.json5的buildOption下设置编译选项,"abiFilters" : ["arm64-v8a"],即 "externalNativeOptions": { "path": "./src/main/cpp/CMakeLists.txt", "arguments": "", "cppFlags": "", "abiFilters" : ["arm64-v8a"] }
d:entry增加头文件apple.h,写入方法 int getvalue_local(); int add_local(int a, int b);
e:entry的hello.cpp调用方法 #include "apple.h" int value_b = getvalue_local(); value_b += add_local(1,2) + add_local(3, 4);
f、签名,编译entry,在solibA\entry\build\default\outputs\default目录下生成hap包entry-default-signed.hap
2、通过命令将entry-default-signed.hap运行到设备并拉起,参考 hdc install entry-default-signed.hap hdc shell aa start -a EntryAbility -b com.example.soliba
3、打开demo1工程 demo1做了如下操作
a、在entry的build-profile.json5下设置编译选项,"abiFilters" : ["arm64-v8a"] (arm64-v8a代表64位,对应原型机和部分rk的设备,如果编译类型不一致,编译会报错;armeabi-v7a代表32位,根据设备实际系统位数配置)
b、添加三方so库到demo1\entry\libs\arm64-v8a\liblocalso.so c:将源码文件hello.cpp拖到demo1中打开,并在相关行打多个断点
4、demo1工程选中entry,build编译,签名,点击attach,勾选Show all processes,选择com.example.soliba,OK;
设备上点击控件触发调用关系,会打开源码文件即localso的hello.cpp,可进入断点进行调试;点Step Over执行到下一行、点Resume Program执行到下一个断点、点Step Into进到汇编。