首页 > 解决方案 > 用毕加索加载图片网址的问题

问题描述

我正在从某个 url 加载图像,Picasso并收到此错误:

无法创建带有“未实现”消息的图像解码器

这是我的适配器类:

class CountriesAdapter(var countriesList: ArrayList<Country>) :
    RecyclerView.Adapter<CountriesAdapter.CountriesViewHolder>() {

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CountriesViewHolder =
        CountriesViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.single_item_country, parent, false))


    override fun onBindViewHolder(holder: CountriesViewHolder, position: Int) {
        holder.bind(countriesList[position])
    }

    override fun getItemCount(): Int = countriesList.size


    class CountriesViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        fun bind(country: Country) = with(itemView) {
            itemView.tvCountryName.text = country.name
            Picasso.get().load(country.flagUrl).fit().placeholder(R.drawable.ic_asr_sun).into(itemView.ivCountryFlag)
        }

    }
}

我测试了相同的用例,Glide但仍然无法正常工作,所以我假设我做错了什么。

编辑 网址是正确的

标签: androidpicasso

解决方案


根据这里的链接,在我记录Picasso错误之后,这是:

W/System.err:java.io.IOException:无法解码流。

这个问题在这里无法解决。正如讨论所说:

当 Android 无法解码您的图像时会发生此错误。毕加索无法纠正这一点。考虑使用其他图像格式或重新编码您的图像。


推荐阅读