Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java BitmapFactory.decodeResource在Android 2.2上提供空值_Java_Android_Null_Bitmapfactory - Fatal编程技术网

Java BitmapFactory.decodeResource在Android 2.2上提供空值

Java BitmapFactory.decodeResource在Android 2.2上提供空值,java,android,null,bitmapfactory,Java,Android,Null,Bitmapfactory,我在我的应用程序中有一种带有大图像的图库。我遵循缩小大图像以避免在OOM异常中运行。这在Android 2.3+上运行得相当好。但由于某种原因,它在安卓2.2中失败了。我发现返回的位图是null 代码如下: protected static Bitmap decodeSampledBitmapFromResource (Resources res, int resId,

我在我的应用程序中有一种带有大图像的图库。我遵循缩小大图像以避免在OOM异常中运行。这在Android 2.3+上运行得相当好。但由于某种原因,它在安卓2.2中失败了。我发现返回的位图是
null

代码如下:

protected static Bitmap decodeSampledBitmapFromResource (Resources res,
                                                         int resId,
                                                         int reqWidth,
                                                         int reqHeight)
{

    // First decode with inJustDecodeBounds=true to check dimensions
    final BitmapFactory.Options options = new BitmapFactory.Options ();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeResource (res, resId, options);

    // Calculate inSampleSize
    options.inSampleSize = calculateInSampleSize (options,
                                                  reqWidth,
                                                  reqHeight);

    // Decode bitmap with inSampleSize set
    options.inJustDecodeBounds = false;
    return BitmapFactory.decodeResource (res, resId, options);
}
如果要检查其他代码,则该项目位于上

日志:

03-26 13:57:17.724: E/AndroidRuntime(1100): FATAL EXCEPTION: AsyncTask #2
03-26 13:57:17.724: E/AndroidRuntime(1100): java.lang.RuntimeException: An error occured while executing doInBackground()
03-26 13:57:17.724: E/AndroidRuntime(1100):     at android.os.AsyncTask$3.done(AsyncTask.java:200)
03-26 13:57:17.724: E/AndroidRuntime(1100):     at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
03-26 13:57:17.724: E/AndroidRuntime(1100):     at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
03-26 13:57:17.724: E/AndroidRuntime(1100):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
03-26 13:57:17.724: E/AndroidRuntime(1100):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
03-26 13:57:17.724: E/AndroidRuntime(1100):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
03-26 13:57:17.724: E/AndroidRuntime(1100):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
03-26 13:57:17.724: E/AndroidRuntime(1100):     at java.lang.Thread.run(Thread.java:1096)
03-26 13:57:17.724: E/AndroidRuntime(1100): Caused by: java.lang.NullPointerException: key == null || value == null
03-26 13:57:17.724: E/AndroidRuntime(1100):     at android.support.v4.util.LruCache.put(LruCache.java:117)
03-26 13:57:17.724: E/AndroidRuntime(1100):     at com.finger.sciencequiz.MainActivity.addBitmapToMemoryCache(MainActivity.java:84)
03-26 13:57:17.724: E/AndroidRuntime(1100):     at com.finger.sciencequiz.BitmapWorkerTask.doInBackground(BitmapWorkerTask.java:46)
03-26 13:57:17.724: E/AndroidRuntime(1100):     at com.finger.sciencequiz.BitmapWorkerTask.doInBackground(BitmapWorkerTask.java:1)
03-26 13:57:17.724: E/AndroidRuntime(1100):     at android.os.AsyncTask$2.call(AsyncTask.java:185)
03-26 13:57:17.724: E/AndroidRuntime(1100):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
03-26 13:57:17.724: E/AndroidRuntime(1100):     ... 4 more

我最终使用了。它对我来说非常好用。

因此您将null作为键或值传递:“key==null | | value==null”,因此在MainActivity第84行中更改它。是的,值是位图(为null)。但它不在Android 2.3+中,我不知道为什么!?