HarmonyOS 鸿蒙Next 修改网络图片大小会导致应用崩溃
HarmonyOS 鸿蒙Next 修改网络图片大小会导致应用崩溃
示例代码如下:
@Entry
@Component
struct test {
@State imageSize: number = 1
@State localImageSize: number = 1
build() {
Scroll(){
Column(){
Slider({ value: this.localImageSize, min: 0.8, max: 1.5, step: 0.1 })
.showTips(true, `${this.localImageSize}`)
.onChange((value) => {
this.localImageSize = Math.round(value * 10) / 10
})
Button("应用")
.onClick((event: ClickEvent) => {
this.imageSize = this.localImageSize
})
.type(ButtonType.Normal)
.margin({ top: 34, bottom: 34 })
.padding({ left: 58, right: 58, top: 10, bottom: 10 })
.borderRadius(4)
.backgroundColor("#0068E8")
Column(){
Image("https://img12.iqilu.com/10339/clue/202405/29/68ec17f5-9621-461f-ad22-a6820a3f9cf5.jpg")
.autoResize(true)
.width(`${176*this.imageSize}px`)
.height(`${112*this.imageSize}px`)
}
}
.width("100%")
.alignItems(HorizontalAlign.Start)
}
}
}
cppcrash日志:
Device info:HongZOS-MHH1-PDA100
Build info:HongZOS MH-PDA100 2.0101.00.01
Fingerprint:ce8c3d301481e0d63e164a5623c8d4e27ddfbee6a9cc6431753fe18753c77b19
Module name:com.example.jxtongkuang11
Version:1.0.0
VersionCode:1000000
PreInstalled:No
Foreground:Yes
Timestamp:2025-02-10 17:33:42.4153776268
Pid:5826
Uid:20010041
Process name:com.example.jxtongkuang11
Reason:Signal:SIGABRT(SI_TKILL)@0x000016c2 from:5826:20010041
LastFatalMessage:[lifecycle_checkable.h(~LifeCycleCheckable)-(100000:100000:scope)] this object is still in use, use_count=1
Fault thread Info:
Tid:5826, Name:e.jxtongkuang11
#00 pc 000cdd00 /system/lib/ld-musl-arm.so.1(raise+136)(609bd1dd60912a33182951662327e332)
#01 pc 00083184 /system/lib/ld-musl-arm.so.1(abort+16)(609bd1dd60912a33182951662327e332)
#02 pc 001d602b /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::LifeCycleCheckable::~LifeCycleCheckable()+138)(9837024a7b66a28d5c7fce68fa2d62d2)
#03 pc 001d5e59 /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::Referenced::~Referenced()+48)(9837024a7b66a28d5c7fce68fa2d62d2)
#04 pc 00aa3c2f /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::NG::StaticImageObject::~StaticImageObject()+22)(9837024a7b66a28d5c7fce68fa2d62d2)
#05 pc 001d4bdd /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::RefPtr<OHOS::Ace::PipelineBase>::~RefPtr()+42)(9837024a7b66a28d5c7fce68fa2d62d2)
#06 pc 00aa3aef /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::NG::StaticImageObject::MakeCanvasImage(OHOS::Ace::RefPtr<OHOS::Ace::NG::ImageLoadingContext> const&, OHOS::Ace::NG::SizeT<float> const&, bool, bool)+246)(9837024a7b66a28d5c7fce68fa2d62d2)
#07 pc 00a9d3af /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::NG::ImageLoadingContext::OnMakeCanvasImage()+390)(9837024a7b66a28d5c7fce68fa2d62d2)
#08 pc 00aa2833 /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::NG::ImageStateManager::HandleCommandByDataReadyState(OHOS::Ace::NG::ImageLoadingCommand)+86)(9837024a7b66a28d5c7fce68fa2d62d2)
#09 pc 00a9dab7 /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::NG::ImageLoadingContext::MakeCanvasImage(OHOS::Ace::NG::SizeT<float> const&, bool, OHOS::Ace::ImageFit, std::__h::optional<OHOS::Ace::NG::SizeT<float>> const&)+174)(9837024a7b66a28d5c7fce68fa2d62d2)
#10 pc 00a9d941 /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::NG::ImageLoadingContext::MakeCanvasImageIfNeed(OHOS::Ace::NG::SizeT<float> const&, bool, OHOS::Ace::ImageFit, std::__h::optional<OHOS::Ace::NG::SizeT<float>> const&, bool)+456)(9837024a7b66a28d5c7fce68fa2d62d2)
#11 pc 00c2759d /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::NG::ImageLayoutAlgorithm::Layout(OHOS::Ace::NG::LayoutWrapper*)+808)(9837024a7b66a28d5c7fce68fa2d62d2)
#12 pc 00a1e9ad /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::NG::LayoutAlgorithmWrapper::Layout(OHOS::Ace::NG::LayoutWrapper*)+44)(9837024a7b66a28d5c7fce68fa2d62d2)
#13 pc 00a18c09 /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::NG::FrameNode::Layout()+1516)(9837024a7b66a28d5c7fce68fa2d62d2)
#14 pc 00bcac97 /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::NG::FlexLayoutAlgorithm::Layout(OHOS::Ace::NG::LayoutWrapper*)+1114)(9837024a7b66a28d5c7fce68fa2d62d2)
#15 pc 00a1e9ad /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::NG::LayoutAlgorithmWrapper::Layout(OHOS::Ace::NG::LayoutWrapper*)+44)(9837024a7b66a28d5c7fce68fa2d62d2)
#16 pc 00a18c09 /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::NG::FrameNode::Layout()+1516)(9837024a7b66a28d5c7fce68fa2d62d2)
#17 pc 00bcac97 /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::NG::FlexLayoutAlgorithm::Layout(OHOS::Ace::NG::LayoutWrapper*)+1114)(9837024a7b66a28d5c7fce68fa2d62d2)
#18 pc 00a1e9ad /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::NG::LayoutAlgorithmWrapper::Layout(OHOS::Ace::NG::LayoutWrapper*)+44)(9837024a7b66a28d5c7fce68fa2d62d2)
#19 pc 00a18c09 /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::NG::FrameNode::Layout()+1516)(9837024a7b66a28d5c7fce68fa2d62d2)
#20 pc 00e31139 /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::NG::ScrollLayoutAlgorithm::Layout(OHOS::Ace::NG::LayoutWrapper*)+1568)(9837024a7b66a28d5c7fce68fa2d62d2)
#21 pc 00a1e9ad /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::NG::LayoutAlgorithmWrapper::Layout(OHOS::Ace::NG::LayoutWrapper*)+44)(9837024a7b66a28d5c7fce68fa2d62d2)
#22 pc 00a18c09 /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::NG::FrameNode::Layout()+1516)(9837024a7b66a28d5c7fce68fa2d62d2)
#23 pc 00aa577b /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::NG::BoxLayoutAlgorithm::Layout(OHOS::Ace::NG::LayoutWrapper*)+68)(9837024a7b66a28d5c7fce68fa2d62d2)
#24 pc 00a1e9ad /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::NG::LayoutAlgorithmWrapper::Layout(OHOS::Ace::NG::LayoutWrapper*)+44)(9837024a7b66a28d5c7fce68fa2d62d2)
#25 pc 00a18c09 /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::NG::FrameNode::Layout()+1516)(9837024a7b66a28d5c7fce68fa2d62d2)
#26 pc 00a09425 /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::NG::FrameNode::CreateLayoutTask(bool)+452)(9837024a7b66a28d5c7fce68fa2d62d2)
#27 pc 004c72b1 /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::NG::UITaskScheduler::FlushLayoutTask(bool)+300)(9837024a7b66a28d5c7fce68fa2d62d2)
#28 pc 004c7d0d /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::NG::UITaskScheduler::FlushTask()+36)(9837024a7b66a28d5c7fce68fa2d62d2)
#29 pc 004ad205 /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::NG::PipelineContext::FlushVsync(unsigned long long, unsigned int)+600)(9837024a7b66a28d5c7fce68fa2d62d2)
#30 pc 00468a91 /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::PipelineBase::OnVsyncEvent(unsigned long long, unsigned int)+192)(9837024a7b66a28d5c7fce68fa2d62d2)
#31 pc 0046a1b3 /system/lib/platformsdk/libace_compatible.z.so(std::__h::__function::__func<OHOS::Ace::PipelineBase::PipelineBase(std::__h::shared_ptr<OHOS::Ace::Window>, OHOS::Ace::RefPtr<OHOS::Ace::TaskExecutor>, OHOS::Ace::RefPtr<OHOS::Ace::AssetManager>, OHOS::Ace::RefPtr<OHOS::Ace::Frontend> const&, int, OHOS::Ace::RefPtr<OHOS::Ace::PlatformResRegister>)::$_1, std::__h::allocator<OHOS::Ace::PipelineBase::PipelineBase(std::__h::shared_ptr<OHOS::Ace::Window>, OHOS::Ace::RefPtr<OHOS::Ace::TaskExecutor>, OHOS::Ace::RefPtr<OHOS::Ace::AssetManager>, OHOS::Ace::RefPtr<OHOS::Ace::Frontend> const&, int, OHOS::Ace::RefPtr<OHOS::Ace::PlatformResRegister>)::$_1>, void (unsigned long long, unsigned int)>::operator()(unsigned long long&&, unsigned int&&) (.f07024b3093c6b37e43ca55b544cd2fb)+110)(9837024a7b66a28d5c7fce68fa2d62d2)
#32 pc 003d964b /system/lib/platformsdk/libace_compatible.z.so(std::__h::function<void (unsigned long long, unsigned int)>::operator()(unsigned long long, unsigned int) const+30)(9837024a7b66a28d5c7fce68fa2d62d2)
#33 pc 003d961d /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::Window::OnVsync(unsigned long long, unsigned int)+44)(9837024a7b66a28d5c7fce68fa2d62d2)
#34 pc 00538219 /system/lib/platformsdk/libace_compatible.z.so(OHOS::Ace::NG::RosenWindow::RosenWindow(OHOS::sptr<OHOS::Rosen::Window> const&, OHOS::Ace::RefPtr<OHOS::Ace::TaskExecutor>, int)::$_0::operator()(long long) const::'lambda'()::operator()() const+148)(9837024a7b66a28d5c7fce68fa2d62d2)
#35 pc 0053803f /system/lib/platformsdk/libace_compatible.z.so(std::__h::__function::__func<OHOS::Ace::NG::RosenWindow::RosenWindow(OHOS::sptr<OHOS::Rosen::Window> const&, OHOS::Ace::RefPtr<OHOS::Ace::TaskExecutor>, int)::$_0, std::__h::allocator<OHOS::Ace::NG::RosenWindow::RosenWindow(OHOS::sptr<OHOS::Rosen::Window> const&, OHOS::Ace::RefPtr<OHOS::Ace::TaskExecutor>, int)::$_0>, void (long long)>::operator()(long long&&) (.b40a8b18746f10f6b4c11c2f72e2c9b7)+162)(9837024a7b66a28d5c7fce68fa2d62d2)
#36 pc 0008433b /system/lib/platformsdk/libwm.z.so(OHOS::Rosen::VsyncStation::VsyncCallbackInner(long long)+258)(7c435d5d9869feef859a632da115a9a0)
#37 pc 000840e9 /system/lib/platformsdk/libwm.z.so(OHOS::Rosen::VsyncStation::OnVsync(long long, void*) (.cfi)+12)(7c435d5d9869feef859a632da115a9a0)
#38 pc 0001420b /system/lib/platformsdk/libvsync.z.so(OHOS::Rosen::VSyncCallBackListener::OnReadable(int)+738)(00d04e5d30210a8c55d00201c1aeb4cd)
#39 pc 0000ee45 /system/lib/chipset-pub-sdk/libeventhandler.z.so(std::__h::__function::__func<OHOS::AppExecFwk::EventQueue::HandleFileDescriptorEvent(int, unsigned int, std::__h::basic_string<char, std::__h::char_traits<char>, std::__h::allocator<char>> const&)::$_9, std::__h::allocator<OHOS::AppExecFwk::EventQueue::HandleFileDescriptorEvent(int, unsigned int, std::__h::basic_string<char, std::__h::char_traits<char>, std::__h::allocator<char>> const&)::$_9>, void ()>::operator()()+132)(8b169d6cd087985cd2df3fd011979586)
#40 pc 0000d71b /system/lib/chipset-pub-sdk/libeventhandler.z.so(OHOS::AppExecFwk::EventHandler::DistributeEvent(std::__h::unique_ptr<OHOS::AppExecFwk::InnerEvent, void (*)(OHOS::AppExecFwk::InnerEvent*)> const&)+786)(8b169d6cd087985cd2df3fd011979586)
#41 pc 0001617b /system/lib/chipset-pub-sdk/libeventhandler.z.so(OHOS::AppExecFwk::(anonymous namespace)::EventRunnerImpl::Run()+1230)(8b169d6cd087985cd2df3fd011979586)
#42 pc 000177a9 /system/lib/chipset-pub-sdk/libeventhandler.z.so(OHOS::AppExecFwk::EventRunner::Run()+152)(8b169d6cd087985cd2df3fd011979586)
#43 pc 0005182f /system/lib/platformsdk/libappkit_native.z.so(OHOS::AppExecFwk::MainThread::Start()+554)(1431075bd98c248babf5f735950a64ae)
#44 pc 0000da07 /system/bin/appspawn(RunChildProcessor+306)(552ae5851d41fb0a0336a5f0bd93557c)
#45 pc 000264ab /system/bin/appspawn(AppSpawnChild+270)(552ae5851d41fb0a0336a5f0bd93557c)
#46 pc 000262fb /system/bin/appspawn(AppSpawnProcessMsg+250)(552ae5851d41fb0a0336a5f0bd93557c)
#47 pc 00023b79 /system/bin/appspawn(OnReceiveRequest+2164)(552ae5851d41fb0a0336a5f0bd93557c)
#48 pc 000110a3 /system/lib/chipset-pub-sdk/libbegetutil.z.so(HandleRecvMsg_+138)(fb2de7e3e48858e54ebe0a464e5b41aa)
#49 pc 00010e55 /system/lib/chipset-pub-sdk/libbegetutil.z.so(HandleStreamEvent_+84)(fb2de7e3e48858e54ebe0a464e5b41aa)
#50 pc 0000f34b /system/lib/chipset-pub-sdk/libbegetutil.z.so(ProcessEvent+70)(fb2de7e3e48858e54ebe0a464e5b41aa)
#51 pc 0000f003 /system/lib/chipset-pub-sdk/libbegetutil.z.so(RunLoop_+138)(fb2de7e3e48858e54ebe0a464e5b41aa)
#52 pc 0002277b /system/bin/appspawn(AppSpawnRun+114)(552ae5851d41fb0a0336a5f0bd93557c)
#53 pc 000172bd /system/bin/appspawn(main+668)(552ae5851d41fb0a0336a5f0bd93557c)
#54 pc 0006d198 /system/lib/ld-musl-arm.so.1(libc_start_main_stage2+56)(609bd1dd60912a33182951662327e332)
#55 pc 0000d218 /system/bin/appspawn(_start_c+84)(552ae5851d41fb0a0336a5f0bd93557c)
#56 pc 0000d1bc /system/bin/appspawn(552ae5851d41fb0a0336a5f0bd93557c)
Registers:
r0:00000000 r1:ff9b9834 r2:00000000 r3:00000008
r4:ec0f2d0d r5:ec0e6c44 r6:ff9b9908 r7:000000af
r8:00000000 r9:ff9b99c0 r10:ff9b99a0
fp:ff9b98c0 ip:00000000 sp:ff9b9830 lr:f7f0f188 pc:f7f59d00
更多关于HarmonyOS 鸿蒙Next 修改网络图片大小会导致应用崩溃的实战教程也可以访问 https://www.itying.com/category-93-b0.html
是的,使用真机报错了,
我用真机又试了一下,也没报错,你有申请网络权限,图片能正常加载么,
那可能是和设备或者系统有关,我这边网络图片能够正常显示,请问你这边使用的是什么设备和系统,
针对“HarmonyOS 鸿蒙Next 修改网络图片大小会导致应用崩溃”的问题,可能的原因及解决方案如下:
在HarmonyOS中,处理网络图片并进行大小修改时,应用崩溃可能由于多种因素导致。常见原因包括内存溢出、图片处理逻辑错误或系统API使用不当。
-
内存管理:确保在修改图片大小时,应用有足够的内存来处理图片数据。如果图片过大,尝试在加载前压缩图片,或在处理过程中释放不必要的资源。
-
图片处理逻辑:检查图片大小修改的逻辑,确保没有数组越界、空指针异常等编程错误。使用安全的API和正确的图片格式处理。
-
系统API使用:确保使用的系统API与HarmonyOS版本兼容,且API调用方式正确。查阅官方文档,确认API的使用限制和最佳实践。
-
异常处理:在图片处理代码中添加适当的异常处理逻辑,以便在出现问题时能够捕获异常,避免应用崩溃。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。在此页面上,你可以找到更多关于HarmonyOS开发的技术支持和资源。