AsyncImage 无法加载图片排查

 AsyncImage(
        modifier = Modifier
            .fillMaxSize()
            .clickNoRipple {
                click.invoke()
            }
            .clip(RoundedCornerShape(shape.dp)),
        placeholder = painterResource(id = R.drawable.icon_up_image_default),
        error = painterResource(id = R.drawable.icon_up_image_default),
        model = model,
        contentDescription = "",
        contentScale = ContentScale.Crop,
        onError = {
            LogUtils.d("linlian AsyncImageDefault !!!!${it.result.throwable.printStackTrace()}")
        }
    )

添加  onError = {
            LogUtils.d("linlian AsyncImageDefault !!!!${it.result.throwable.printStackTrace()}")
        } 打印错误堆栈

追踪到 

 java.lang.IllegalStateException: Not in applications main thread
10:33:51.920  W  	at me.jessyan.autosize.utils.Preconditions.checkMainThread(Preconditions.java:113)
10:33:51.920  W  	at me.jessyan.autosize.AutoSizeCompat.autoConvertDensity(AutoSizeCompat.java:139)
10:33:51.921  W  	at me.jessyan.autosize.AutoSizeCompat.autoConvertDensityBaseOnWidth(AutoSizeCompat.java:112)
10:33:51.921  W  	at me.jessyan.autosize.AutoSizeCompat.autoConvertDensityOfGlobal(AutoSizeCompat.java:57)
10:33:51.921  W  	at com.healthfitness.course.ui.newcoursedetail.NewCourseDetailActivity.getResources(NewCourseDetailActivity.kt:64)
10:33:51.921  W  	at coil.decode.BitmapFactoryDecoder.decode(BitmapFactoryDecoder.kt:86)
10:33:51.921  W  	at coil.decode.BitmapFactoryDecoder.decode$lambda$1$lambda$0(BitmapFactoryDecoder.kt:46)
10:33:51.921  W  	at coil.decode.BitmapFactoryDecoder.$r8$lambda$JfaWZjat2AoVuXgGpv1j76E3ZlA(Unknown Source:0)
10:33:51.921  W  	at coil.decode.BitmapFactoryDecoder$$ExternalSyntheticLambda0.invoke(D8$$SyntheticClass:0)
10:33:51.921  W  	at kotlinx.coroutines.InterruptibleKt.runInterruptibleInExpectedContext(Interruptible.kt:48)
10:33:51.921  W  	at kotlinx.coroutines.InterruptibleKt.access$runInterruptibleInExpectedContext(Interruptible.kt:1)
10:33:51.921  W  	at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invokeSuspend(Interruptible.kt:40)
10:33:51.923  W  	at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invoke(Unknown Source:8)
10:33:51.923  W  	at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invoke(Unknown Source:4)
10:33:51.924  W  	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:61)
10:33:51.924  W  	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:155)
10:33:51.924  W  	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1)
10:33:51.924  W  	at kotlinx.coroutines.InterruptibleKt.runInterruptible(Interruptible.kt:39)
10:33:51.924  W  	at kotlinx.coroutines.InterruptibleKt.runInter

在非UI线程用的getresource

排查到 原来的Activity 页面有如下代码

    override fun getResources(): Resources {
        AutoSizeCompat.autoConvertDensityOfGlobal(super.getResources())//如果没有自定义需求用这个方法
        return super.getResources()
    }

建议把这段代码移到 oncreate中,

   override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        AutoSizeCompat.autoConvertDensityOfGlobal(super.getResources())//如果没有自定义需求用这个方法

    }

修改之后,图片正常加载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值