鸿蒙 HarmonyOS 开发问题

Q001: 文档问题-开启开发者模式

文档中心https://developer.huawei.com/consumer/cn/doc/quickApp-Guides/quickapp-open-developer-option-0000001137005543实际上文档描述错误:连续多次点击“Harmony 版本”无效

A001: 应为:连续多次点击“软件版本”


Q002:真机调试-签名问题

Install Failed: error: failed to install bundle.
code:9568320
error: no signature file.
Open signing configs

A002文档中心https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-signing-V5


Q003: 

.margin({ top: '%2' } 无效

A003:

.margin({ top: '2%' } 因为上边%误写在数字前了

Q004:

如何浏览沙箱文件夹?

A004:

View > Tool Windows > Device File Browser

例如 data/app/el2/100/base/com.example.myapplication/haps/entry/files/


Q005:

如何下载 OpenHarmony SDK?

A005:

File > Settings > OpenHarmony SDK


Q006:

如何下载NDK?

A006:

File > Settings > OpenHarmony SDK 勾选Native

下载的是已解压状态,网上说的解压不需要

下载路径:DevEco安装路径\sdk\default\openharmony\native\

cmake命令路径(接续上行路径):build-tools\cmake\bin

到系统环境变量Path中(注意重启电脑生效)


Q007:

CMake Error: CMake was unable to find a build program correspongding to "Ninja"

A007:

ninja.exe与camke.exe在同一文件夹下,确保有这个exe

若仍有这个错误,说明没有重启电脑让环境变量生效


Q008:

error: declaration of 'xxx' has a different language linkage

xxx是一个.c中的函数名

对c/cpp编译不太懂,现象是之前编译没这个错误,后来在ndk中又增加了一个napi接口,再编译就报这个错

A008:

在xxx对应的.h中

有例如下边的声明: 

char* xxx(const char *str);

在外边套上extern "C" 即可

extern "C" {
char* xxx(const char *str);
}

Q009:

warning: ISO C++11 does not allow conversion from string literal to 'char *' [-Wwritable-strings]

对c/cpp编译不太懂,现象是之前编译没这个错误,后来在ndk中又增加了一个napi接口,再编译就报这个错

这个错误指向某个.c中的一个全局变量:

char* strPackageName = "xxx";// 1

test("test");// 2

A009:

对于1,前边加const即可

对于2,test((char*)"test");// 编译通过,效果待验证


Q010:

如何设置NDK的目标设备cpu架构

A010:

DevEco左上侧工程树结构 entry/build-profile.json5内的

externalNativeOptions内增加
"abiFilters": [
  "arm64-v8a",
  "x86_64"
]

Q011:

base64解码丢失字符问题

A011:

如果用ArkTs的base64编码和解码,没有问题。

如果用某些base64编码工具(下称工具A)编码得到的编码串,用在线解码工具例如https://base64.us解码,用java源码解码,或用iOS的oc解码,都能返回正确原文,但用ArkTs base64解码,则有时(不是全部)出现上述问题,多表现为若原文最后有换行,其后有一些字符时,解码得到的原文会丢失这个换行及其以后所有字符。

另外对同一段原文base64编码,工具A和ArkTs得到的编码串不一样,但用https://base64.us解码结果确都正确!

由于用工具A对大量文件进行了编码,所以不可能批量用ArkTs对这些文件重新编码。不过由于所得到的文件内容是通过NDK传给ArkTs的,所以可以通过在NDK侧用c语言的base64解码后再传给ArkTs侧使用。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值