ImageView.setBitmapImage выбрасывает исключение nullpointer - PullRequest
1 голос
/ 06 ноября 2011

Я использую диалоговое окно для отображения меню выбора для пользователя, а в диалоговом окне я использую ImageView. Я использую BitmapFactory.decodeFile () с путем к файлу изображения, которое будет использоваться с SD-карты пользователя, и у меня определенно есть все установленные разрешения. Я проверил в отладчике, а также с помощью операторов журнала, чтобы убедиться, что путь к файлу и растровое изображение чего-то стоят, а не ноль. По какой-то причине при использовании возвращенного изображения возникает исключение нулевого указателя. Вот маленький кусочек кода для просмотра изображения в диалоге

                        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));

Я заметил, что мне не нужен раскладка, но я подумал, что это может быть связано с ошибкой. Вот строки из журнала

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 голосов
/ 06 ноября 2011

Я только что понял, что у меня была проблема с моим собственным соглашением об именах. LOL ..... У меня было два ресурса с именем profileImage .... один с большой буквы I и один с маленькой буквы i ..... для большого количества кофеи не хватает сна .... еще одна причина вспомнить, что вы узнали в школе о соглашениях об именах для нескольких классов lol

...