ImageView.setBitmap图像抛出空指针异常

时间:2011-11-06 11:36:20

标签: android dialog bitmap nullpointerexception

我使用对话框向用户显示选项菜单,并在对话框屏幕中使用ImageView显示。我使用BitmapFactory.decodeFile()与用户SD卡中使用的图像的文件路径,我肯定已设置所有权限。我已经检查了调试器,并通过使用日志语句来确保文件路径和位图都是值得的,而不是null。出于某种原因,当它使用返回的图像时,它会抛出空指针异常。下面是对话框imageview的一小段代码

                        dialog2 = new Dialog(MyView.this);

                        LayoutInflater li =      (LayoutInflater) MyView.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                        View w = li.inflate(R.layout.userpreference, null, false);

                            dialog2.setContentView(w);

                            dialog2.setTitle("MY PREFERENCES");

    ////////////////////////////////////////////////////////////////////
                            profileImage = new ImageView(MyView.this);
                            profileImage = (ImageView) dialog2.findViewById(R.id.profileImage);
                            BitmapFactory.Options opts = new BitmapFactory.Options();
                            opts.inSampleSize = 16;
                            profileImage.setImageBitmap(BitmapFactory.decodeFile(curr_profimg,opts));

我注意到我不需要layoutinflater,但我想这可能与错误有关。继承logcat的行

11-06 03:31:15.488: E/AndroidRuntime(11889): FATAL EXCEPTION: main
11-06 03:31:15.488: E/AndroidRuntime(11889): java.lang.NullPointerException
11-06 03:31:15.488: E/AndroidRuntime(11889):    at graf.main.MyView$6$9.onClick(MyView.java:567)
11-06 03:31:15.488: E/AndroidRuntime(11889):    at android.view.View.performClick(View.java:2485)
11-06 03:31:15.488: E/AndroidRuntime(11889):    at android.view.View$PerformClick.run(View.java:9089)
11-06 03:31:15.488: E/AndroidRuntime(11889):    at android.os.Handler.handleCallback(Handler.java:587)
11-06 03:31:15.488: E/AndroidRuntime(11889):    at android.os.Handler.dispatchMessage(Handler.java:92)
11-06 03:31:15.488: E/AndroidRuntime(11889):    at android.os.Looper.loop(Looper.java:130)
11-06 03:31:15.488: E/AndroidRuntime(11889):    at android.app.ActivityThread.main(ActivityThread.java:3806)
11-06 03:31:15.488: E/AndroidRuntime(11889):    at java.lang.reflect.Method.invokeNative(Native Method)
11-06 03:31:15.488: E/AndroidRuntime(11889):    at java.lang.reflect.Method.invoke(Method.java:507)
11-06 03:31:15.488: E/AndroidRuntime(11889):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-06 03:31:15.488: E/AndroidRuntime(11889):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
11-06 03:31:15.488: E/AndroidRuntime(11889):    at dalvik.system.NativeStart.main(Native Method)

一如既往,对此事的任何意见都将不胜感激

1 个答案:

答案 0 :(得分:0)

我刚刚意识到自己的命名约定存在问题lol .....我有两个名为profileImage的资源....一个是资本我,一个是小写我.....很多咖啡并且没有足够的睡眠......另一个原因是要记住你在学校里学到的关于多个类的命名约定的内容lol