我有一個應用程序崩潰,我似乎無法解決。創建位圖NullPointerException
我從像這樣的資源獲取位圖。
Bitmap bmp1 = BitmapFactory.decodeResource(getResources(), R.drawable.map_distance_tag);
現在,這似乎有問題的設備,當涉及到從該位圖創建一個位圖的極少數的少數。例如...
Bitmap bmOverlay = Bitmap.createBitmap(bmp1.getWidth(), bmp1.getHeight(), bmp1.getConfig());
我得到了NullPointerException
時,它創建於Bitmap
類468線Bitmap
,釋我不得不走進一看其當其從設置新位圖的密度及其規模源位圖。
// The new bitmap was created from a known bitmap source so assume that
467 // they use the same density scale
468 bitmap.setDensityScale(source.getDensityScale());
現在我似乎無法重現的問題,但事實上,當的getWidth()調用原來的位圖告訴我,源不是空我沒有得到一個例外。
這是整個堆棧跟蹤。
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.my.app/com.my.app.recording.TrackingActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
at android.app.ActivityThread.access$2300(ActivityThread.java:125)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at android.graphics.Bitmap.createBitmap(Bitmap.java:468)
at com.my.app.maps.MapFragment.createTabOverlay(MapFragment.java:663)
at com.my.app.maps.MapFragment.addMarkersForToolType(MapFragment.java:474)
at com.my.app.maps.MapFragment.onActivityCreated(MapFragment.java:405)
at android.support.v4.app.Fragment.performActivityCreated(Fragment.java:1468)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:931)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:551)
at com.my.app.recording.TrackingActivity.onStart(TrackingActivity.java:272)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
at android.app.Activity.performStart(Activity.java:3781)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2636)
... 11 more
我的想法
這可能是一些與我不包括針對不同屏幕密度不同的位圖?所有提供的位圖均用於mdpi屏幕。
我注意到還有一個BackStackRecord。這會在用戶按下時崩潰嗎?
預先感謝
對不起解決這個問題,但我從一個資源得到我的位圖 – StuStirling