java.lang.OutOfMemoryError:Android

拉古拜·拉索德(Rajubhai Rathod)

我在cropper库中的一项活动中遇到了加载位图图像的问题。如果图像大小超过5 MB,我将收到内存不足错误...我已经尝试过

android:largeHeap="true"

但这并没有帮助我解决问题。我的Java代码和logcat如下所示

Logcat:

07-09 21:10:47.482:E / art(4870):抛出OutOfMemoryError“无法分配6391674字节分配,其中6004224空闲字节和5MB直到OOM” 07-09 21:10:47.482:D / AndroidRuntime(4870) :关闭VM 07-09 21:10:47.522:E / AndroidRuntime(4870):致命异常:主07-09 21:10:47.522:E / AndroidRuntime(4870):进程:com.karopass.status2017,PID: 4870 07-09 21:10:47.522:E / AndroidRuntime(4870):java.lang.OutOfMemoryError:无法分配6391674字节分配与6004224可用字节和5MB,直到OOM 07-09 21:10:47.522:E / AndroidRuntime (4870):位于java.io.ByteArrayOutputStream.toByteArray(ByteArrayOutputStream.java:122)07-09 21:10:47.522:E / AndroidRuntime(4870):位于com.karopass.status2017.material.ImageLoader.addToDiskCache(ImageLoader。 java:238)07-09 21:10:47.522:E / AndroidRuntime(4870):位于com.karopass.status2017。material.ImageLoader.saveTempImage(ImageLoader.java:271)

以及我的Java代码如下

public File addToDiskCache(String imageName, Bitmap inImage) {

    Log.e("Add to Disk",imageName);

    ByteArrayOutputStream bytes = new ByteArrayOutputStream();
    inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);

    if(!mCacheDir.exists()){
        mCacheDir.mkdirs();
    }

    File filePath=new File(mCacheDir.getPath()+File.separator+imageName);
    if(!filePath.exists()) {
        try {
            filePath.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    OutputStream os=null;
    try {
           os= new FileOutputStream(filePath.getPath());
            os.write(bytes.toByteArray());
            os.flush();
        } catch (IOException e) {
            Log.e("Write err",filePath.toString());
        }finally {
        try {
            os.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    Log.e("storage path",filePath.toString());

    return filePath;
}

请帮我解决问题。

谢谢

Cgx

压缩无效

当您使用文件中的位图时,请尝试此操作

 private Bitmap sampleImage(Bitmap bitmap, int reqWidth, int reqHight) {


        //first decode
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inJustDecodeBounds = true;
        BitmapFactory.decodeFile("FILE_PATH",options);
        //seconde deconde
        options.inSampleSize = caculateSampleSize(options,reqWidth,reqHight);
        options.inJustDecodeBounds = false;


        bitmap = BitmapFactory.decodeFile("FILE_PATH",options);
         return bitmap;

    }

private int caculateSampleSize(BitmapFactory.Options options, int reqWidth, int reqHight) {
    int screenWidth;
    int screenHight;
    screenWidth = (reqWidth == 0 ? this.getResources().getDisplayMetrics().widthPixels : reqWidth);
    screenHight = (reqHight == 0 ? this.getResources().getDisplayMetrics().heightPixels : reqHight);
    int sampleWith = options.outWidth / screenWidth;
    int sampleHight = options.outHeight / screenHight;
    //use max
    return  sampleWith > sampleHight ? sampleWith : sampleHight;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android java.lang.OutOfMemoryError?

来自分类Dev

java.lang.OutOfMemoryError:Android

来自分类Dev

Android由java.lang.outofmemoryerror引起

来自分类Dev

带有大量图像的android java.lang.OutOfMemoryError recyclerview

来自分类Dev

Android Robolectric Gradle-java.lang.OutOfMemoryError:PermGen空间

来自分类Dev

android应用程序中的java.lang.OutOfMemoryError

来自分类Dev

如何清除Android PDFView中的java.lang.OutOfMemoryError?

来自分类Dev

ListView android滚动期间出现java.lang.OutOfMemoryError

来自分类Dev

Xamarin android 部署上的 Java,Lang.OutOfMemoryError

来自分类Dev

Android Studio:E/UncaughtException:java.lang.OutOfMemoryError

来自分类Dev

java.lang.outofmemoryerror异常?

来自分类Dev

java.lang.OutOfMemoryError图片

来自分类Dev

AndroidRuntime:java.lang.OutOfMemoryError

来自分类Dev

java.lang.OutOfMemoryError图片

来自分类Dev

错误是java.lang.OutOfMemoryError

来自分类Dev

java.lang.OutOfMemoryError:Java堆空间

来自分类Dev

java.lang.OutOfMemoryError:Java堆空间?

来自分类Dev

java.lang.OutOfMemoryError:长度为1279544898的android.support.v4.app.BackStackState []将溢出

来自分类Dev

Android Studio“ java.lang.OutOfMemoryError”模拟器Redmi 2 Prime Kitkat

来自分类Dev

Android:创建图库应用程序时出现java.lang.OutOfMemoryError

来自分类Dev

任何想法如何修复java.lang.outofmemoryerror android listview错误?

来自分类Dev

致命异常:java.lang.OutOfMemoryError:EnsureLocalCapacity (FileInputStream.open0, android.graphics.Typeface.getFullFlipFont)

来自分类Dev

Java Android Json OutOfMemoryError

来自分类Dev

java.lang.OutOfMemoryError-BitmapFactory.decode(strPath)

来自分类Dev

Asynctask中的java.lang.OutOfMemoryError错误

来自分类Dev

ArrayList和java.lang.OutOfMemoryError

来自分类Dev

密码查询给出java.lang.OutOfMemoryError

来自分类Dev

从java.lang.OutOfMemoryError中恢复

来自分类Dev

尾部递归的java.lang.OutOfMemoryError

Related 相关文章

  1. 1

    Android java.lang.OutOfMemoryError?

  2. 2

    java.lang.OutOfMemoryError:Android

  3. 3

    Android由java.lang.outofmemoryerror引起

  4. 4

    带有大量图像的android java.lang.OutOfMemoryError recyclerview

  5. 5

    Android Robolectric Gradle-java.lang.OutOfMemoryError:PermGen空间

  6. 6

    android应用程序中的java.lang.OutOfMemoryError

  7. 7

    如何清除Android PDFView中的java.lang.OutOfMemoryError?

  8. 8

    ListView android滚动期间出现java.lang.OutOfMemoryError

  9. 9

    Xamarin android 部署上的 Java,Lang.OutOfMemoryError

  10. 10

    Android Studio:E/UncaughtException:java.lang.OutOfMemoryError

  11. 11

    java.lang.outofmemoryerror异常?

  12. 12

    java.lang.OutOfMemoryError图片

  13. 13

    AndroidRuntime:java.lang.OutOfMemoryError

  14. 14

    java.lang.OutOfMemoryError图片

  15. 15

    错误是java.lang.OutOfMemoryError

  16. 16

    java.lang.OutOfMemoryError:Java堆空间

  17. 17

    java.lang.OutOfMemoryError:Java堆空间?

  18. 18

    java.lang.OutOfMemoryError:长度为1279544898的android.support.v4.app.BackStackState []将溢出

  19. 19

    Android Studio“ java.lang.OutOfMemoryError”模拟器Redmi 2 Prime Kitkat

  20. 20

    Android:创建图库应用程序时出现java.lang.OutOfMemoryError

  21. 21

    任何想法如何修复java.lang.outofmemoryerror android listview错误?

  22. 22

    致命异常:java.lang.OutOfMemoryError:EnsureLocalCapacity (FileInputStream.open0, android.graphics.Typeface.getFullFlipFont)

  23. 23

    Java Android Json OutOfMemoryError

  24. 24

    java.lang.OutOfMemoryError-BitmapFactory.decode(strPath)

  25. 25

    Asynctask中的java.lang.OutOfMemoryError错误

  26. 26

    ArrayList和java.lang.OutOfMemoryError

  27. 27

    密码查询给出java.lang.OutOfMemoryError

  28. 28

    从java.lang.OutOfMemoryError中恢复

  29. 29

    尾部递归的java.lang.OutOfMemoryError

热门标签

归档