java毕加索onError ArrayIndexOutOfBoundsException
我得到了ArrayIndexOutOfBoundsException
指向我毕加索的onError
方法:
Picasso.get().load(category.get(holder.getAdapterPosition()).getImage()).noFade().tag("tag").resize(100, 100).centerCrop().networkPolicy(NetworkPolicy.OFFLINE).placeholder(R.drawable.image_placeholder).into(holder.img, new Callback() {
@Override
public void onSuccess() {}
@Override
public void onError(Exception e) {
//Error points to this line
Picasso.get().load(category.get(holder.getAdapterPosition()).getImage()).noFade().resize(100, 100).centerCrop().memoryPolicy(MemoryPolicy.NO_CACHE).placeholder(R.drawable.image_placeholder).into(holder.img);
}
});
我无法在我的设备上重现这个问题,所以我不知道为什么会发生这种情况
到目前为止,这只发生在运行安卓8.0.0的设备上
我有互联网权限强>
这是我在crashlytics的日志:
Fatal Exception: java.lang.ArrayIndexOutOfBoundsException: length=73; index=-1
at java.util.ArrayList.get(ArrayList.java:439)
at com.app.name.Recycler.RecyclerVideoAdapter$2.onError(RecyclerVideoAdapter.java:413)
at com.squareup.picasso.ImageViewAction.error(ImageViewAction.java:72)
at com.squareup.picasso.Picasso.deliverAction(Picasso.java:581)
at com.squareup.picasso.Picasso.complete(Picasso.java:535)
at com.squareup.picasso.Picasso$1.handleMessage(Picasso.java:122)
at 安卓.os.Handler.dispatchMessage(Handler.java:105)
at 安卓.os.Looper.loop(Looper.java:164)
at 安卓.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Method.java)
at com.安卓.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
任何帮助都将不胜感激
编辑1:
为了澄清,我将以下内容更改为:
@Override
public void onBindViewHolder(@NonNull final MyViewHolder holder, int position) {
Picasso.get().load(category.get(holder.getAdapterPosition()).getImage()).noFade().tag("tag").resize(100, 100).centerCrop().networkPolicy(NetworkPolicy.OFFLINE).placeholder(R.drawable.image_placeholder).into(holder.img, new Callback() {
@Override
public void onSuccess() {}
@Override
public void onError(Exception e) {
//Error points to this line
Picasso.get().load(category.get(holder.getAdapterPosition()).getImage()).noFade().resize(100, 100).centerCrop().memoryPolicy(MemoryPolicy.NO_CACHE).placeholder(R.drawable.image_placeholder).into(holder.img);
}
});
对下列事项:
@Override
public void onBindViewHolder(@NonNull final MyViewHolder holder, int position) {
final int adapterPosition = holder.getAdapterPosition();
Picasso.get().load(category.get(adapterPosition).getImage()).noFade().tag("tag").resize(100, 100).centerCrop().networkPolicy(NetworkPolicy.OFFLINE).placeholder(R.drawable.image_placeholder).into(holder.img, new Callback() {
@Override
public void onSuccess() {}
@Override
public void onError(Exception e) {
//Error points to this line
Picasso.get().load(category.get(adapterPosition).getImage()).noFade().resize(100, 100).centerCrop().memoryPolicy(MemoryPolicy.NO_CACHE).placeholder(R.drawable.image_placeholder).into(holder.img);
}
});
共 (0) 个答案