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

5 回复

我用模拟器试了一下,没有出现报错,你是用真机报错了么,模拟器你会报错么

更多关于HarmonyOS 鸿蒙Next 修改网络图片大小会导致应用崩溃的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


是的,使用真机报错了,

我用真机又试了一下,也没报错,你有申请网络权限,图片能正常加载么,

那可能是和设备或者系统有关,我这边网络图片能够正常显示,请问你这边使用的是什么设备和系统,

针对“HarmonyOS 鸿蒙Next 修改网络图片大小会导致应用崩溃”的问题,可能的原因及解决方案如下:

在HarmonyOS中,处理网络图片并进行大小修改时,应用崩溃可能由于多种因素导致。常见原因包括内存溢出、图片处理逻辑错误或系统API使用不当。

  1. 内存管理:确保在修改图片大小时,应用有足够的内存来处理图片数据。如果图片过大,尝试在加载前压缩图片,或在处理过程中释放不必要的资源。

  2. 图片处理逻辑:检查图片大小修改的逻辑,确保没有数组越界、空指针异常等编程错误。使用安全的API和正确的图片格式处理。

  3. 系统API使用:确保使用的系统API与HarmonyOS版本兼容,且API调用方式正确。查阅官方文档,确认API的使用限制和最佳实践。

  4. 异常处理:在图片处理代码中添加适当的异常处理逻辑,以便在出现问题时能够捕获异常,避免应用崩溃。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。在此页面上,你可以找到更多关于HarmonyOS开发的技术支持和资源。

回到顶部