HarmonyOS鸿蒙Next中TextEncoder encodeInto编码崩溃

HarmonyOS鸿蒙Next中TextEncoder encodeInto编码崩溃 使用以下代码编码会导致app崩溃。

var encoder = new util.TextEncoder("GBK")
let dest = encoder.encodeInto("哈哈哈30-57320     User:hA")

崩溃信息如下:

Device info:KaihongOS
Build info:KaihongOS 1.3.1
Module name:net.xxx.demo
Version:1.0.0
Pid:20388
Uid:20010037
Reason:Signal:SIGILL(ILL_ILLOPC)@0xf7e3a504 
Thread name:net.xxx.dem
#00 pc 00088504 /system/lib/ld-musl-arm.so.1
#01 pc 00050810 /system/lib/ld-musl-arm.so.1(free+440)
#02 pc 000dea28 /system/lib/libc++.so(operator delete(void*)+20) (41d814ecc17665d391f452f64120fc8d7b29306f)
#03 pc 0001e8e1 /system/lib/libace_napi_ark.z.so(ArkNativeString::EncodeWriteChinese(std::__h::basic_string<char, std::__h::char_traits<char>, std::__h::allocator<char>>&, char const*)+496) (8b56b84b7321de5cae204aee48bbbd36)
#04 pc 00006427 /system/lib/module/libutil.z.so (717b267077ee6633aa9cc789431ac3ed)
#05 pc 0000a44d /system/lib/module/libutil.z.so (717b267077ee6633aa9cc789431ac3ed)
#06 pc 0001c34d /system/lib/libace_napi_ark.z.so(ArkNativeFunction::NativeFunctionCallBack(panda::JsiRuntimeCallInfo*)+556) (8b56b84b7321de5cae204aee48bbbd36)
#07 pc 00248d3d /system/lib/libark_jsruntime.so (d1fc27744e471b1371b0cff781dc375a)
#08 pc 001795b9 /system/lib/libark_jsruntime.so (d1fc27744e471b1371b0cff781dc375a)
#09 pc 00177d4f /system/lib/libark_jsruntime.so (d1fc27744e471b1371b0cff781dc375a)
#10 pc 002491d3 /system/lib/libark_jsruntime.so(panda::FunctionRef::Call(panda::ecmascript::EcmaVM const*, panda::Local<panda::JSValueRef>, panda::Local<panda::JSValueRef> const*, int)+442) (d1fc27744e471b1371b0cff781dc375a)
#11 pc 00d48fa5 /system/lib/libace.z.so (44f6e6e76c2f930a0129197e13187b49)
#12 pc 00b6a959 /system/lib/libace.z.so (44f6e6e76c2f930a0129197e13187b49)
#13 pc 00b65d79 /system/lib/libace.z.so (44f6e6e76c2f930a0129197e13187b49)
#14 pc 00bef773 /system/lib/libace.z.so (44f6e6e76c2f930a0129197e13187b49)
#15 pc 007f4d71 /system/lib/libace.z.so (44f6e6e76c2f930a0129197e13187b49)
#16 pc 008051cb /system/lib/libace.z.so (44f6e6e76c2f930a0129197e13187b49)
#17 pc 00804ddf /system/lib/libace.z.so (44f6e6e76c2f930a0129197e13187b49)
#18 pc 00802ea5 /system/lib/libace.z.so (44f6e6e76c2f930a0129197e13187b49)
#19 pc 008078f7 /system/lib/libace.z.so (44f6e6e76c2f930a0129197e13187b49)
#20 pc 008059db /system/lib/libace.z.so (44f6e6e76c2f930a0129197e13187b49)
#21 pc 008076db /system/lib/libace.z.so (44f6e6e76c2f930a0129197e13187b49)
#22 pc 003715d7 /system/lib/libace.z.so (44f6e6e76c2f930a0129197e13187b49)
#23 pc 00418063 /system/lib/libace.z.so (44f6e6e76c2f930a0129197e13187b49)
#24 pc 00b0e7e7 /system/lib/libace.z.so (44f6e6e76c2f930a0129197e13187b49)
#25 pc 003df709 /system/lib/libace.z.so (44f6e6e76c2f930a0129197e13187b49)
#26 pc 0000b33d /system/lib/platformsdk/libeventhandler.z.so(OHOS::AppExecFwk::EventHandler::DistributeEvent(std::__h::unique_ptr<OHOS::AppExecFwk::InnerEvent, void (*)(OHOS::AppExecFwk::InnerEvent*)> const&)+356) (f57028ebb3d33b7ae8a4a22644b4e452)
#27 pc 00011cc7 /system/lib/platformsdk/libeventhandler.z.so (f57028ebb3d33b7ae8a4a22644b4e452)
#28 pc 00010db1 /system/lib/platformsdk/libeventhandler.z.so(OHOS::AppExecFwk::EventRunner::Run()+64) (f57028ebb3d33b7ae8a4a22644b4e452)
#29 pc 0006092f /system/lib/libappkit_native.z.so(OHOS::AppExecFwk::MainThread::Start()+298) (bb01c7f46c1cf6a50d2c030be8856d8a)
#30 pc 0001fdc9 /system/bin/appspawn (fdfc6bb1dec3e90dfdb86fb70954efab)
#31 pc 0001fedb /system/bin/appspawn (fdfc6bb1dec3e90dfdb86fb70954efab)
#32 pc 0001f7c7 /system/bin/appspawn (fdfc6bb1dec3e90dfdb86fb70954efab)
#33 pc 000184bd /system/lib/libbegetutil.z.so (8cee24b9d7f759fb32411bc0a0af94a6)
#34 pc 00018239 /system/lib/libbegetutil.z.so (8cee24b9d7f759fb32411bc0a0af94a6)
#35 pc 000167f7 /system/lib/libbegetutil.z.so(ProcessEvent+70) (8cee24b9d7f759fb32411bc0a0af94a6)
#36 pc 00016483 /system/lib/libbegetutil.z.so (8cee24b9d7f759fb32411bc0a0af94a6)
#37 pc 0001edcb /system/bin/appspawn (fdfc6bb1dec3e90dfdb86fb70954efab)
#38 pc 0001186b /system/bin/appspawn (fdfc6bb1dec3e90dfdb86fb70954efab)
#39 pc 000d6650 /system/lib/ld-musl-arm.so.1
#40 pc 00010028 /system/bin/appspawn (fdfc6bb1dec3e90dfdb86fb70954efab)
#41 pc 0000ffcc /system/bin/appspawn (fdfc6bb1dec3e90dfdb86fb70954efab)

更多关于HarmonyOS鸿蒙Next中TextEncoder encodeInto编码崩溃的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

手机上没有问题,应该是你开发版的系统问题

更多关于HarmonyOS鸿蒙Next中TextEncoder encodeInto编码崩溃的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


鸿蒙系统是不是不支持 GBK的编码集,

在HarmonyOS鸿蒙Next中,TextEncoderencodeInto方法用于将字符串编码为字节数组,并直接写入目标Uint8Array。如果出现崩溃,可能是由于以下原因:

  1. 目标数组空间不足:encodeInto方法需要确保目标Uint8Array有足够的空间来存储编码后的字节。如果目标数组空间不足,可能会导致崩溃。

  2. 字符串包含非法字符:如果字符串包含无法被当前编码方案处理的字符,可能会导致编码失败或崩溃。

  3. 内存问题:在低内存环境下,encodeInto方法可能无法正常分配内存,导致崩溃。

  4. API使用不当:如果encodeInto方法的参数传递错误,如目标数组未正确初始化,也可能导致崩溃。

  5. 系统或API的Bug:在某些情况下,可能是系统或TextEncoder API本身存在Bug,导致崩溃。

要解决此问题,可以检查目标数组的大小是否足够,确保字符串内容合法,并确认API使用正确。如果问题持续存在,可能需要等待系统或API的更新修复。

在HarmonyOS鸿蒙Next中,TextEncoderencodeInto方法出现崩溃,可能是由于以下原因:

  1. 编码问题:输入字符串包含无法被目标编码(如UTF-8)表示的字符。
  2. 内存问题:目标Uint8Array缓冲区大小不足,无法容纳编码后的数据。
  3. API兼容性:当前版本的鸿蒙Next对TextEncoder的实现可能存在Bug或不完全支持。

解决方案:

  • 检查输入字符串,确保其符合目标编码要求。
  • 确保目标缓冲区足够大。
  • 更新系统或等待官方修复。

如果问题持续,建议提交Bug报告给鸿蒙开发团队。

回到顶部