Picasso获取错误:java.lang.IollegalArgumentException:路径不能为空



我正在使用公共API制作在线新闻,并使用Picasso从系统加载数据。我的应用程序运行顺利。然而,应用程序有时会崩溃,错误显示

at com.squareup.picasso.Picasso.load(Picasso.java:332)
at com.tonyapp.hoanguhsk.CustomAdapter.onBindViewHolder(CustomAdapter.java:49)
at com.tonyapp.hoanguhsk.CustomAdapter.onBindViewHolder(CustomAdapter.java:20)
at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:7254)
at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7337)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6194)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6460)
at androidx.recyclerview.widget.GapWorker.prefetchPositionWithDeadline(GapWorker.java:288)
at androidx.recyclerview.widget.GapWorker.flushTaskWithDeadline(GapWorker.java:345)
at androidx.recyclerview.widget.GapWorker.flushTasksWithDeadline(GapWorker.java:361)
at androidx.recyclerview.widget.GapWorker.prefetch(GapWorker.java:368)
at androidx.recyclerview.widget.GapWorker.run(GapWorker.java:399)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

我查看我的customAdapter.java文件,并尝试修复java:49中的错误。我尝试测试和使用许多解决方案,这些解决方案是我从其他对我的案例有同样问题的人那里搜索到的。遗憾的是,错误仍然显示。下面几行是我的CustomAdapter.java代码:

holder.text_title.setText(headlines.get(position).getTitle());
holder.text_source.setText(headlines.get(position).getAuthor());
holder.txt_date.setText(headlines.get(position).getPublishedAt());


if (headlines.get(position).getUrlToImage()!=null){
Picasso.get().load(headlines.get(position).getUrlToImage()).into(holder.img_headline);
}
holder.cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listener.OnNewsClicked(headlines.get(position));
Intent intent = new Intent(context,Webview.class);
intent.putExtra("url",headlines.get(position).getUrl());
context.startActivity(intent);

有人能帮我解决这个故障吗?非常感谢您的支持。

根据您的代码,尝试将代码更改为以下

if (headlines.get(position).getUrlToImage()!=null && !headlines.get(position).getUrlToImage().isEmpty()){
Picasso.get().load(headlines.get(position).getUrlToImage()).into(holder.img_headline);
}

最新更新