2017-02-10 35 views
0

以下功能不適用於設備比API較大的工作22錯誤的位圖創建功能的設備比API大於22

Bitmap bm = Bitmap.createBitmap(2160, 16777214, Bitmap.Config.ARGB_8888); 

錯誤日誌:

W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.graphics.Bitmap.setHasAlpha(boolean)' on a null object reference 
02-10 11:01:37.478 6473-6473/com.mazzmedia.daitem1 W/System.err:  at android.graphics.Bitmap.createBitmap(Bitmap.java:835) 
02-10 11:01:37.478 6473-6473/com.mazzmedia.daitem1 W/System.err:  at android.graphics.Bitmap.createBitmap(Bitmap.java:808) 
02-10 11:01:37.478 6473-6473/com.mazzmedia.daitem1 W/System.err:  at android.graphics.Bitmap.createBitmap(Bitmap.java:775) 
02-10 11:01:37.478 6473-6473/com.mazzmedia.daitem1 W/System.err:  at com.controller.activities.SplashScreenActivity.onCreate(SplashScreenActivity.java:51) 
02-10 11:01:37.478 6473-6473/com.mazzmedia.daitem1 W/System.err:  at android.app.Activity.performCreate(Activity.java:6248) 
02-10 11:01:37.478 6473-6473/com.mazzmedia.daitem1 W/System.err:  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1125) 
02-10 11:01:37.478 6473-6473/com.mazzmedia.daitem1 W/System.err:  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2437) 
02-10 11:01:37.478 6473-6473/com.mazzmedia.daitem1 W/System.err:  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2544) 
02-10 11:01:37.479 6473-6473/com.mazzmedia.daitem1 W/System.err:  at android.app.ActivityThread.access$900(ActivityThread.java:150) 
02-10 11:01:37.479 6473-6473/com.mazzmedia.daitem1 W/System.err:  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394) 
02-10 11:01:37.479 6473-6473/com.mazzmedia.daitem1 W/System.err:  at android.os.Handler.dispatchMessage(Handler.java:102) 
02-10 11:01:37.479 6473-6473/com.mazzmedia.daitem1 W/System.err:  at android.os.Looper.loop(Looper.java:168) 
02-10 11:01:37.479 6473-6473/com.mazzmedia.daitem1 W/System.err:  at android.app.ActivityThread.main(ActivityThread.java:5845) 
02-10 11:01:37.479 6473-6473/com.mazzmedia.daitem1 W/System.err:  at java.lang.reflect.Method.invoke(Native Method) 
02-10 11:01:37.479 6473-6473/com.mazzmedia.daitem1 W/System.err:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797) 
02-10 11:01:37.479 6473-6473/com.mazzmedia.daitem1 W/System.err:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687) 

回答

0

你一定要明白你要求提供144千兆字節大小的位圖,並請求2160像素高,16777214像素寬,每個像素佔用4個字節(由Bitmap.Config.ARGB_8888定義)。

數學表明這是2160 x 16777214 x 4,它等於144955128960字節。我不清楚你希望這個設備工作在哪個設備上。

解決方案:不要創建如此大的位圖。