当我在模拟器中运行我的应用程序时,它的工作正常,但是当我在Android手机中运行它时,它显示强制关闭错误。

这是我的日志

08-03 02:04:36.602: E/AndroidRuntime(15464): FATAL EXCEPTION: main
08-03 02:04:36.602: E/AndroidRuntime(15464): java.lang.OutOfMemoryError: (Heap Size=47623KB, Allocated=39485KB)
08-03 02:04:36.602: E/AndroidRuntime(15464):    at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
08-03 02:04:36.602: E/AndroidRuntime(15464):    at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:626)
08-03 02:04:36.602: E/AndroidRuntime(15464):    at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:730)
08-03 02:04:36.602: E/AndroidRuntime(15464):    at com.example.fatwallet.MyAdapter.setDrawable(MyAdapter.java:83)
08-03 02:04:36.602: E/AndroidRuntime(15464):    at com.example.fatwallet.MyAdapter.getView(MyAdapter.java:69)
08-03 02:04:36.602: E/AndroidRuntime(15464):    at android.widget.AbsListView.obtainView(AbsListView.java:2334)
08-03 02:04:36.602: E/AndroidRuntime(15464):    at android.widget.ListView.measureHeightOfChildren(ListView.java:1409)``


83号线是...

setDrawable(image, dataObj.getImageId());


69号线是..

private void setDrawable(ImageView image, String drawableName) {
        AssetManager manager = image.getContext().getAssets();
        InputStream open = null;
        try {
            open = manager.open(drawableName+".jpg");
            Bitmap bitmap = BitmapFactory.decodeStream(open);
            // Assign the bitmap to an ImageView in this layout
            image.setImageBitmap(bitmap);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (open != null) {
                try {
                    open.close();
                } catch (IOException e) {
                    e.printStackTrace();

最佳答案

您正在尝试将大文件映射到内存中。尝试在清单中设置:

<application
             android:largeHeap="true">
    . . .
</application>


但是,这是不鼓励的解决方案。根据官方文档:

大多数应用程序不需要此,而应专注于减少整体内存使用量以提高性能。启用此功能也不能保证可用内存的固定增加,因为某些设备受到其总可用内存的限制。

链接here

关于java - 在Android手机中显示强制关闭错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25099530/

10-09 03:01