Как мне исследовать проблему с загрузкой растрового изображения с помощью BitmapFactory в Android?"Ошибка getEntry, потому что entryIndex ..." - PullRequest
1 голос
/ 07 ноября 2011

Я пытаюсь загрузить растровое изображение и отобразить его на холсте. Я сделал это ранее, используя этот метод, и он работал нормально. К сожалению, на этот раз что-то пошло не так, и я не знаю, как я могу отследить проблему.

Мой код попадает сюда:

Log.d(TAG, "Loading bitmaps");
this.stageL=BitmapFactory.decodeResource(getResources(), R.drawable.stagel);
Log.d(TAG,"Bitmap loaded");
int stageLHeight = stageL.getHeight();
Log.d(TAG,String.valueOf(stageLHeight));

Но тогда я получаю предупреждение в logcat между Loading bitmaps и Bitmap Loaded. После этого приложение закрывается, и я никогда не вижу значение stageLHeight.

Вот логкат:

11-07 15:22:50.182: DEBUG/LabSetup(613): Loading bitmaps
11-07 15:22:50.182: WARN/ResourceType(613): getEntry failing because entryIndex 3 is beyond type entryCount 1
11-07 15:22:50.182: WARN/ResourceType(613): Failure getting entry for 0x7f020003 (t=1 e=3) in package 0 (error -2147483647)
11-07 15:22:50.182: DEBUG/LabSetup(613): Bitmap loaded
11-07 15:22:50.222: WARN/dalvikvm(613): threadid=9: thread exiting with uncaught exception (group=0x40014760)
11-07 15:22:50.222: ERROR/AndroidRuntime(613): FATAL EXCEPTION: Thread-10
11-07 15:22:50.222: ERROR/AndroidRuntime(613): java.lang.NullPointerException
11-07 15:22:50.222: ERROR/AndroidRuntime(613):     at com.cjs.duallaseralignment.LabSetup.SetCanvasSize(LabSetup.java:53)
11-07 15:22:50.222: ERROR/AndroidRuntime(613):     at com.cjs.duallaseralignment.MainAppPanel.onDraw(MainAppPanel.java:136)
11-07 15:22:50.222: ERROR/AndroidRuntime(613):     at com.cjs.duallaseralignment.MainThread.run(MainThread.java:56)

И в случае, если это полезно, R.java:

public final class R {
    public static final class attr {
    }
    public static final class drawable {
        public static final int icon=0x7f020000;
        public static final int mag=0x7f020001;
        public static final int magr=0x7f020002;
        public static final int stagel=0x7f020003;
        public static final int stager=0x7f020004;
    }
    public static final class layout {
        public static final int main=0x7f030000;
    }
    public static final class string {
        public static final int app_name=0x7f040001;
        public static final int hello=0x7f040000;
    }
}

Ответы [ 2 ]

1 голос
/ 07 ноября 2011

Ошибка в вашем Logcat.

11-07 15:22:50.222: ERROR/AndroidRuntime(613): at com.cjs.duallaseralignment.LabSetup.SetCanvasSize(LabSetup.java:53)

Было бы полезно, если бы вы указали на строку 53.

Так как вы не получаете журнал, в котором сообщается размер изображения, я думаю, что

int stageLHeight = stageL.getHeight();

- строка 53. И мое следующее предположение, что загруженное изображение является нулевым. Это может произойти, если изображения не существуют, или если изображения не могут быть декодированы из файла ресурсов.

0 голосов
/ 07 ноября 2011

Черт возьми!

В крайнем случае я удалил изображения из проекта и заново добавил их, и эй-presto!Weird ...

...