Articles of 内存不足

java.lang.OutOfMemoryError即使在try-catch块中?

我的应用程序崩溃,在logcat中显示: java.lang.OutOfMemoryError: (Heap Size=39047KB, Allocated=19932KB) at android.graphics.BitmapFactory.nativeDecodeFile(Native Method) at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:373) at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:443) at com.mApp.mobileapp.mActivity.onActivityResult(mActivity.java:196) at android.support.v4.app.FragmentActivity.onActivityResult(FragmentActivity.java:153) at android.app.Activity.dispatchActivityResult(Activity.java:4752) at android.app.ActivityThread.deliverResults(ActivityThread.java:3449) at android.app.ActivityThread.handleSendResult(ActivityThread.java:3503) at android.app.ActivityThread.access$1100(ActivityThread.java:144) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1320) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:156) at android.app.ActivityThread.main(ActivityThread.java:5109) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:991) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:758) at dalvik.system.NativeStart.main(Native Method) 在运行此代码时: String selectedImagePath = data.getStringExtra(“imageByteCode”); try { File imageFile = new […]

java.lang.outofmemoryerrorexception?

我的android项目有问题,我没有触及任何东西,突然我的应用因为这个错误而停止工作。 你对发生的事情有所了解吗? 错误是这样的: 10-30 22:53:38.246: E/AndroidRuntime(19137): FATAL EXCEPTION: Thread-1210 10-30 22:53:38.246: E/AndroidRuntime(19137): java.lang.OutOfMemoryError 10-30 22:53:38.246: E/AndroidRuntime(19137): at com.android.volley.toolbox.DiskBasedCache.streamToBytes(DiskBasedCache.java:316) 10-30 22:53:38.246: E/AndroidRuntime(19137): at com.android.volley.toolbox.DiskBasedCache.readString(DiskBasedCache.java:526) 10-30 22:53:38.246: E/AndroidRuntime(19137): at com.android.volley.toolbox.DiskBasedCache.readStringStringMap(DiskBasedCache.java:549) 10-30 22:53:38.246: E/AndroidRuntime(19137): at com.android.volley.toolbox.DiskBasedCache$CacheHeader.readHeader(DiskBasedCache.java:392) 10-30 22:53:38.246: E/AndroidRuntime(19137): at com.android.volley.toolbox.DiskBasedCache.initialize(DiskBasedCache.java:155) 10-30 22:53:38.246: E/AndroidRuntime(19137): at com.android.volley.CacheDispatcher.run(CacheDispatcher.java:85) 请帮帮我!!

位图decodeStream OutOfMemory Exception

我在我的应用程序中使用自己的Android ViewFlow示例实现。 我正在从Web服务下载加密图像,而不是将它们保存在SD卡上。 我正在使用viewflow来动态解密图像并显示它们。 但问题是,当用户开始更快地更改图像时,它会给我一个OutOfMemoryException并且我find/测试的所有信息对我的情况都不起作用。 这是我正在使用的: @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = mInflater.inflate(R.layout.image_item, null); } try { File bufferFile = new File(ids.get(position)); FileInputStream fis = new FileInputStream(bufferFile); Cipher cipher = Cipher.getInstance(“AES/CBC/NoPadding”); SecretKeySpec keySpec = new SecretKeySpec(“01234567890abcde”.getBytes(), “AES”); IvParameterSpec ivSpec = new IvParameterSpec(“fedcba9876543210”.getBytes()); cipher.init(Cipher.DECRYPT_MODE, keySpec, […]

Android:Out of Memoryexception/ decodeResource如何添加到VM预算?

我对Android很新,并且一直在开发游戏。 我不时有用户报告memory exceptions ,我发现这很令人惊讶,因为我创建的位图大小最多为200 kb。 每当我创建一个新的sprite时,我都会调用BitmapFactory.decodeResource() 。 由于我的应用程序是一个僵尸防御游戏,你可以期待我经常创建精灵。 每次我创建一个精灵,我都会调用decode资源来生成一个位图。 我的问题是,如果我只在每个活动开始时调用解码资源,并参考包级别的位图,这会减少VM预算上的内存量吗?

BitmapFactory.decodeFile()中的OutOfMemoryError

当我从图库中选择图像时,如果图像大小超过3 Mb android的OutOfMemoryError。 BitmapFactory.Options options = new BitmapFactory.Options(); options.inPreferredConfig = Bitmap.Config.ARGB_8888; Bitmap bmp = BitmapFactory.decodeFile(imageFilePath, options); 这个文本来自日志。 请帮助我,因为“截止日期”) E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.OutOfMemoryError at android.graphics.BitmapFactory.nativeDecodeStream(Native Method) at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:623) at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:378) at com.DriverNotes.AndroidMobileClientTest.ProfileActivity.onActivityResult(ProfileActivity.java:104) at android.app.Activity.dispatchActivityResult(Activity.java:5456) at android.app.ActivityThread.deliverResults(ActivityThread.java:3402) at android.app.ActivityThread.handleSendResult(ActivityThread.java:3449) at android.app.ActivityThread.access$1200(ActivityThread.java:150) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1328) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137)

将ByteArray转换为String时出现OutOfMemoryexception?

我使用以下代码将我的ByteArray转换为String: String sReturn = new String(byteArray, “UTF-8”); 但是当ByteArray足够大时,我得到以下exception。 有没有其他方法将ByteArray转换为String而没有内存不足exception? 06-17 12:27:37.594: E/dalvikvm(1617): Out of memory: Heap Size=30663KB, Allocated=22087KB, Bitmap Size=936KB, Limit=32768KB 06-17 12:27:37.594: E/dalvikvm(1617): Extra info: Footprint=30663KB, Allowed Footprint=30663KB, Trimmed=616KB 06-17 12:27:37.594: W/dalvikvm(1617): threadid=9: thread exiting with uncaught exception (group=0x4001d648) 06-17 12:27:37.594: E/AndroidRuntime(1617): FATAL EXCEPTION: Thread-19 06-17 12:27:37.594: E/AndroidRuntime(1617): java.lang.OutOfMemoryError: (Heap Size=30663KB, Allocated=22087KB, Bitmap Size=936KB) […]

在没有OutOfMemoryError或缩减的情况下在Android中旋转图像

基本上我正在尝试在Android应用程序中旋转位图(来自图像)。 我想这样做的原因是,即使垂直拍摄,从相机拍摄的照片(通过意图)也会水平显示,并且方向在图像上保留为元数据。 如果错了,请纠正我。 但问题是,如果在装有相当好的相机的手机上拍摄时,图像将占用大量内存,而且我没有find旋转和保存它的方法而没有获得OutOfMemoryError的风险。 下面的代码是我的地方: 加载图像 检查是否需要旋转 加载缩小版本以在ImageView中显示 如有必要,旋转小图像 在一个单独的线程; 加载,旋转和保存图像,因此将来不需要 对于应用程序而言,保持图像的分辨率非常重要,但欢迎任何带编码的技巧。 我在互联网上搜索了几天,找不到比我已经实现的更多的东西了。 这里有另一个主题,但似乎没有任何解决方案。 希望你能帮忙。 public Bitmap getBitmap(final Context c) { if (bitmap != null) return bitmap; final int rotate = necessaryRotation(c, file); // if(rotate != 0) rotateImageFile(c, rotate); try { // Get scaled version BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeFile(file, options); […]

android java.lang.OutOfMemoryError

当我从网站下载大数据时,我收到此错误信息: I/global (20094): Default buffer size used in BufferedInputStream constructor. It would be better to be explicit if an 8k buffer is required. D/dalvikvm(20094): GC freed 6153 objects / 3650840 bytes in 335ms I/dalvikvm-heap(20094): Forcing collection of SoftReferences for 3599051-byte al location D/dalvikvm(20094): GC freed 320 objects / 11400 bytes in 144ms E/dalvikvm-heap(20094): Out of […]

游戏开发时位图大小超过VM预算

我正在开发一款关于android.Like塔防的游戏。 我正在使用表面视图。我使用一些图像作为位图。(Spritesheets,tilesets,按钮,背景,效果vs.)现在图像接近5-6 mb。当我运行我的游戏时,我收到此错误: 位图大小超过VM预算 19464192字节的外部分配对于此过程来说太大了。 我称这样的图像 BitmapFactory.decodeResource(res, id) 我把它放到arrays。 我无法缩放图像。我正在使用它们。 我试过了 options.inPurgeable=true; 它工作但图像加载速度非常慢。我加载了一个spritesheet,当它加载时,我得到非常低的fps。 我能做什么?

android如何在应用程序运行时保留大型List

在我的应用程序运行时保持List的最佳方法是什么? 我的方法有问题。 它大部分时间都给我一个OutOfMemory错误,因为列表太大了。 List是解析我在线下载的csv文件的结果。 我所做的是在一个活动中解析csv然后将其结果保存在静态类成员中,如: String url = “http://xxx/pdf/pms/pms_test.csv”; try { InputStream input = new URL(url).openStream(); CSVReader reader = new CSVReader(new InputStreamReader(input)); SchedController.sched = reader.readAll(); input.close(); } …然后在不同的活动上访问ClassName.sched 。 我这样做,以便解析的数据将在每个活动中可用…而且我不必再次解析。 我该怎么做才能改善它?