我正面临这个错误:
private void onCaptureImageResult(Intent data) {
Bitmap thumbnail = null;
String[] projection = {MediaStore.Images.Media.DATA};
Cursor cursor = managedQuery(mCapturedImageURI, projection, null,
null, null);
int column_index_data = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
//THIS IS WHAT YOU WANT!
String capturedImageFilePath = cursor.getString(column_index_data);
filename = capturedImageFilePath.substring(capturedImageFilePath.lastIndexOf("/") + 1);
thumbnail = BitmapFactory.decodeFile(capturedImageFilePath);
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
thumbnail.compress(Bitmap.CompressFormat.JPEG, 50, bytes);
thumbnail=Bitmap.createScaledBitmap(thumbnail, 200, 300, true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
Log.i("final camera size", String.valueOf(thumbnail.getAllocationByteCount()));
}
File destination = new File(Environment.getExternalStorageDirectory(),
System.currentTimeMillis() + ".jpg");
byte[] byteArray = bytes.toByteArray();
encoded = Base64.encodeToString(byteArray, Base64.DEFAULT);
Log.e("base64string name", encoded);
Log.e("Image name", capturedImageFilePath);
FileOutputStream fo;
try {
destination.createNewFile();
fo = new FileOutputStream(destination);
fo.write(bytes.toByteArray());
fo.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
profile_image.setImageBitmap(thumbnail);
}
Leakcanary是你记忆泄露的好朋友。这是一个非常容易使用的库,它将帮助您找到应用程序中的内存泄漏。在您的例子中,似乎不是内存泄漏,而只是一些不断分配内存的循环。不管怎样,试试泄密。如果没有帮助,试着找出应用程序的哪个部分使用堆转储占用了所有内存。更多关于它的信息可以在这里找到。
在您的例子中,它似乎与您在位图上所做的一些工作有关。请确保您正在从记忆中释放它们。此外,请记住,Android中的图像占用内存是基于像素的大小,而不是基于MB的大小。所以真正简单的png是10000x10000但只有1MB将比1000x1000 jpeg(3MB)占用更多的内存。
在阅读了大量有关MAT的内容后,我使用我的生产堆转储来分析内存泄漏问题。下面是泄漏报告错误: 线程org.apache.tomcat.util.threads.taskthread@0x6d8be0a30 http-bio-8443-exec-115保留总大小为3,695,816,440(89.03%)字节的局部变量。 内存累积在“'<'System class Loader'>”加载的“java
问题内容: 由于GWT是用javascript编译且代码是用JAVA编写的事实,解决GWT内存泄漏的最佳方法是什么? 问题答案: 我可以推荐2件事: 阅读这篇文章 处理完所有引用后,将其无效。 祝好运!
严重:web应用程序创建了一个ThreadLocal,其键类型为[org.apache.log4j.helpers.ThreadLocalMap](值为[org.apache.log4j.helpers.ThreadLocalMap@3ac5b23e])和值类型为[java.util.Hashtable](值为[{userhost=192.168.15.90,userid=127,username
问题内容: 我有一个Grails应用程序,该应用程序完成了相当不错的域对象创建和销毁工作,而且它似乎以非常非常快的速度耗尽了PermGen空间。我已经进行了通常的调整(将PermGen调整为256M,启用了类GC,等等),但是没有骰子。 有人愿意推荐一些(可能是免费或非常便宜的)工具来解决Groovy和/或Java中的这种内存消耗问题吗?还是您用来解决JVM内存问题的某些技术? 编辑:这是在生产模
问题内容: 我有一个Python程序,它运行一系列实验,没有打算从一个测试存储到另一个测试的数据。我的代码包含一个我完全找不到的内存泄漏(我已经查看了内存泄漏的其他线程)。由于时间限制,我不得不放弃寻找泄漏的机会,但是如果我能够隔离每个实验,该程序可能会运行足够长的时间以产生所需的结果。 在单独的线程中运行每个测试是否有帮助? 还有其他隔离泄漏影响的方法吗? 具体情况详 我的代码分为两部分:实验运
本文向大家介绍PHPExcel内存泄漏问题解决方法,包括了PHPExcel内存泄漏问题解决方法的使用技巧和注意事项,需要的朋友参考一下 使用 PHPExcel 来生成 excel 文档是比较消耗内存的,有时候可能会需要通过一个循环来把大数据切分成若干个小的 excel 文档保存来避免内存耗尽。 然而 PHPExcel 存在 circular references 的情况(貌似在最新的 1.6.5