Android:NullPointerException:尝试调用虚拟方法';intandroid.graphics.Bitmap.getWidth()';关于空对象引用

Android:NullPointerException:尝试调用虚拟方法';intandroid.graphics.Bitmap.getWidth()';关于空对象引用,android,Android,我正在尝试将sd卡中的图像转换为位图,以便在image-view中显示。运行应用程序后,会显示前两到三个图像,但当我滚动列表时,应用程序崩溃,并出现NullPointerException异常:java.lang.NullPointerException:尝试调用虚拟方法“int”空对象引用上的android.graphics.Bitmap.getWidth() 在com.example.tazeen.classnkk.Activity1$MyListAdapter.getView(Activi

我正在尝试将sd卡中的图像转换为位图,以便在image-view中显示。运行应用程序后,会显示前两到三个图像,但当我滚动列表时,应用程序崩溃,并出现NullPointerException异常:java.lang.NullPointerException:尝试调用虚拟方法“int”空对象引用上的android.graphics.Bitmap.getWidth() 在com.example.tazeen.classnkk.Activity1$MyListAdapter.getView(Activity1.java:357)

这里是日志信息

08-28 14:22:14.077    2947-2947/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.example.tazeen.classnkk, PID: 2947
    java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference
            at com.example.tazeen.classnkk.AllPosts_Page$MyListAdapter.getView(AllPosts_Page.java:357)
            at android.widget.AbsListView.obtainView(AbsListView.java:2347)
            at android.widget.ListView.makeAndAddView(ListView.java:1864)
            at android.widget.ListView.fillDown(ListView.java:698)
            at android.widget.ListView.fillGap(ListView.java:662)
            at android.widget.AbsListView.trackMotionScroll(AbsListView.java:4991)
            at android.widget.AbsListView.scrollIfNeeded(AbsListView.java:3418)
            at android.widget.AbsListView.onTouchMove(AbsListView.java:3801)
            at android.widget.AbsListView.onTouchEvent(AbsListView.java:3632)
            at android.view.View.dispatchTouchEvent(View.java:8471)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2399)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2092)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)

尝试替换位图bitmapSize=BitmapFactory.decodeFile(objElement)带有

  File file = new File(objElement);
  if (file.exists()) {
     Bitmap bitmapSize = BitmapFactory.decodeFile(file.getAbsolutePath());
  }

似乎你有无法解码的图像

从文件:

/**
 * Decode a file path into a bitmap. If the specified file name is null,
 * or cannot be decoded into a bitmap, the function returns null.
 *
 * @param pathName complete path name for the file to be decoded.
 * @return the resulting decoded bitmap, or null if it could not be decoded.
 */
public static Bitmap decodeFile(String pathName) {
    return decodeFile(pathName, null);
}
试试这个。在你的内心 if(objeelement.endsWith(png_模式))


我知道我回答这个问题有点晚了。然而,今天我面临着同样的问题。在毕加索中使用位图设置图像并没有解决我的问题。我试过下面的那个

Picasso.with(holder.mRootView.getContext()).load(new File(trackingNumbers.get(position).getImageUrl())).error(R.drawable.no_image_place_holder).noFade().placeholder(R.drawable.no_image_place_holder).into(circularImageView);

谢谢你

但是在我的问题上﹕ 已经像objElement一样获取sd卡路径﹕ = /mnt/sdcard/SDImages/95_20150824112324025.png。我已经更新了答案,也请参考。如果无法解决此问题,请让我知道我将尝试此方法。仍然获取位图为空,代码中有什么错误。您在设备或仿真器上测试此操作的位置?在仿真器和测试设备上也测试此操作。为什么要使用新文件(objElement)。getAbsolutePath()?为什么不
file.getAbsolutePath()
?所以当位图上出现空指针异常时,此代码段应该有助于对其进行解码。getCongif()?@user3919920不,它不会有帮助。这段代码片段显示了Android源代码的片段,解释了为什么可以返回null。
  BitmapFactory.Options options = new BitmapFactory.Options();
  options.inPreferredConfig = Bitmap.Config.ARGB_8888;
  Bitmap bitmap = BitmapFactory.decodeFile(objElement, options);
Picasso.with(holder.mRootView.getContext()).load(new File(trackingNumbers.get(position).getImageUrl())).error(R.drawable.no_image_place_holder).noFade().placeholder(R.drawable.no_image_place_holder).into(circularImageView);