Android的 - 片段有三个列表视图与内存不足的错误崩溃 [英] Android - fragment with three listviews crashes with out of memory error

查看:170
本文介绍了Android的 - 片段有三个列表视图与内存不足的错误崩溃的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我做了这个简单的片段布局 -

 <?XML版本=1.0编码=UTF-8&GT?;
< LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent
    机器人:方向=横向>    < ListView控件
        机器人:ID =@ + ID / listView_airplanes
        机器人:layout_width =170dp
        机器人:layout_height =WRAP_CONTENT>
    < /&的ListView GT;    < ListView控件
        机器人:ID =@ + ID / listView_fruits
        机器人:layout_width =170dp
        机器人:layout_height =WRAP_CONTENT>
    < /&的ListView GT;    < ListView控件
        机器人:ID =@ + ID / listView_animals
        机器人:layout_width =170dp
        机器人:layout_height =WRAP_CONTENT>
    < /&的ListView GT;< / LinearLayout中>

现在在每个列表视图的每行应显示该资产的文件夹位于图像。

所以每个列表项的布局是这样的 -

 <?XML版本=1.0编码=UTF-8&GT?;
< LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent
    机器人:方向=横向>    < ImageView的
        机器人:ID =@ + ID / imageView_image
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:SRC =@绘制/ @空/>< / LinearLayout中>

现在,我做了列表视图中的每一个布局,但是看起来都一样 - 只有一个ImageView的它

现在为code -

  @覆盖
    公共查看onCreateView(LayoutInflater充气器,容器的ViewGroup,
            捆绑savedInstanceState){视图V = inflater.inflate(R.layout.listsviews,集装箱,FALSE); lvTops =(ListView控件)v.findViewById(R.id.listView_airplanes);
         lvBottoms =(ListView控件)v.findViewById(R.id.listView_fruits);
         lvMiddle =(ListView控件)v.findViewById(R.id.listView_animals);dbHand =新DbHandler(getActivity());光标topCursor = dbHand.queryByCat(飞机);
光标bottomCursor = dbHand.queryByCat(果);
光标middleCursor = dbHand.queryByCat(动物);
            。getActivity()startManagingCursor(topCursor);
            。getActivity()startManagingCursor(bottomCursor);
            。getActivity()startManagingCursor(middleCursor);            topadp =新TopsAdptor(getActivity(),topCursor);
            lvTops.setAdapter(topadp);            botadp =新BottomsAdaptor(getActivity(),bottomCursor);
            lvBottoms.setAdapter(botadp);            middleCursor =新MiddleAdptor(getActivity(),topCursor);
            lvMiddle.setAdapter(topadp);}

正如你可以看到我使用一个自定义的适配器类的列表视图中的每一个。

所有的网卡code是同样在这里 - 所以是一个例子 -

 类BottomsAdaptor扩展的CursorAdapter {    公共BottomsAdaptor(上下文的背景下,光标C){
        超(背景下,C);
        // TODO自动生成构造函数存根
    }    @覆盖
    公共无效bindView(查看视图,上下文的背景下,光标光标){
        // TODO自动生成方法存根
        字符串PIC = cursor.getString(光标
                .getColumnIndex(Constants.ITEM_PIC_URL));        ImageView的IV =(ImageView的)view.findViewById(R.id.imageView_lv_bottom);
        尝试{
            InputStream的IMS;
            IMS = getActivity()getAssets()开(PIC)。;
            可绘制D = Drawable.createFromStream(IMS,NULL);
            iv.setImageDrawable(四);        }赶上(IOException异常五){
            e.printStackTrace();
        }
    }    @覆盖
    公共查看NewView的(上下文为arg0,ARG1光标,父母的ViewGroup){
        // TODO自动生成方法存根
        返回getActivity()。getLayoutInflater()。膨胀(R.layout.bottoms_list_item,父母,
                假);
    }}

现在的事情是,在图像的小数字(假设5对每个列表视图),它肯定似乎工作正常,但是当我提出的图像数量在每个列表视图,然后一边在列表视图中的一个向下滚动应用程序崩溃,并在日志它说 -

  java.lang.OutOfMemoryError

现在我也尝试过使用的AsyncTask像这样 -

 类Asyinc扩展的AsyncTask<太虚,太虚,太虚> {
     光标topCursor;
     光标bottomCursor;
     光标middleCursor;    @覆盖
    保护无效doInBackground(虚空...... PARAMS){         topCursor = dbHand.queryByCat(顶);
         bottomCursor = dbHand.queryByCat(底部);
         middleCursor = dbHand.queryByCat(服饰);
        。getActivity()startManagingCursor(topCursor);        。getActivity()startManagingCursor(bottomCursor);
        。getActivity()startManagingCursor(middleCursor);
        返回null;
    }    @覆盖
    保护无效onPostExecute(虚空结果){        super.onPostExecute(结果);
        topadp =新TopsAdptor(getActivity(),topCursor);
        lvTops.setAdapter(topadp);
        botadp =新BottomsAdaptor(getActivity(),bottomCursor);
        lvBottoms.setAdapter(botadp);
        middleatp =新DressedAdptor(getActivity(),middleCursor);
        lvMiddle.setAdapter(middleatp);
    }}

不过还是尝试在列表视图滚动的应用程序崩溃。

任何想法如何可能我解决了这个?
感谢任何形式的帮助。

这里的logcat的错误,当我用AsyncTask的 -

  11-15 00:54:15.635:E / AndroidRuntime(4050):致命异常:主要
11-15 00:54:15.635:E / AndroidRuntime(4050):java.lang.OutOfMemoryError
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.graphics.BitmapFactory.nativeDe $ C $检测板(本机方法)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.graphics.BitmapFactory.de codeStream(BitmapFactory.java:500)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.graphics.BitmapFactory.de codeResourceStream(BitmapFactory.java:353)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:781)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.graphics.drawable.Drawable.createFromStream(Drawable.java:741)
11-15 00:54:15.635:E / AndroidRuntime(4050):在com.example.app1.MyFrag $ BottomsAdaptor.bindView(MywordFrag.java:262)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.support.v4.widget.CursorAdapter.getView(CursorAdapter.java:256)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.widget.AbsListView.obtainView(AbsListView.java:2267)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.widget.ListView.makeAndAddView(ListView.java:1769)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.widget.ListView.fillDown(ListView.java:672)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.widget.ListView.fillGap(ListView.java:636)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.widget.AbsListView.trackMotionScroll(AbsListView.java:5036)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.widget.AbsListView.scrollIfNeeded(AbsListView.java:3193)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.widget.AbsListView.startScrollIfNeeded(AbsListView.java:3138)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.widget.AbsListView.onTouchEvent(AbsListView.java:3463)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.View.dispatchTouchEvent(View.java:7127)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2170)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1905)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
11-15 00:54:15.635:E / AndroidRuntime(4050):在com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1925)
11-15 00:54:15.635:E / AndroidRuntime(4050):在com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1379)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.app.Activity.dispatchTouchEvent(Activity.java:2396)
11-15 00:54:15.635:E / AndroidRuntime(4050):在com.android.internal.policy.impl.PhoneWindow $ DecorView.dispatchTouchEvent(PhoneWindow.java:1873)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.View.dispatchPointerEvent(View.java:7307)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3172)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3117)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4153)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4132)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.ViewRootImpl $ WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4224)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:171)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.os.MessageQueue.nativePollOnce(本机方法)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.os.MessageQueue.next(MessageQueue.java:125)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.os.Looper.loop(Looper.java:124)
11-15 00:54:15.635:E / AndroidRuntime(4050):在android.app.ActivityThread.main(ActivityThread.java:4745)
11-15 00:54:15.635:E / AndroidRuntime(4050):在java.lang.reflect.Method.invokeNative(本机方法)
11-15 00:54:15.635:E / AndroidRuntime(4050):在java.lang.reflect.Method.invoke(Method.java:511)
11-15 00:54:15.635:E / AndroidRuntime(4050):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:


解决方案

无论是图像尺寸过大或别的东西。你可以尝试添加

 的android:largeHeap =真

在你的清单文件的应用程序标记。看看是否能解决这种情况。虽然它不能保证修复它。如下所述: http://developer.android.com/guide/topics /manifest/application-element.html

但它没有固定我的内存不足的错误在我的应用程序。看看是否能帮助你。

I've made this simple fragment layout -

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <ListView
        android:id="@+id/listView_airplanes"
        android:layout_width="170dp"
        android:layout_height="wrap_content" >
    </ListView>

    <ListView
        android:id="@+id/listView_fruits"
        android:layout_width="170dp"
        android:layout_height="wrap_content" >
    </ListView>

    <ListView
        android:id="@+id/listView_animals"
        android:layout_width="170dp"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

Now each row in each of those listviews should show an image that sits in the assets folder.

so the layout of each list item is like this -

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/imageView_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/@null" />

</LinearLayout>

Now, I've made a layout for each one of the listview, but it all look the same - just one imageview in it.

Now for the code -

        @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

View v = inflater.inflate(R.layout.listsviews,container, false);

 lvTops = (ListView) v.findViewById(R.id.listView_airplanes);
         lvBottoms = (ListView) v.findViewById(R.id.listView_fruits);
         lvMiddle = (ListView) v.findViewById(R.id.listView_animals);

dbHand = new DbHandler(getActivity());

Cursor topCursor = dbHand.queryByCat("airplanes);
Cursor bottomCursor = dbHand.queryByCat("fruits");
Cursor middleCursor = dbHand.queryByCat("animals");


            getActivity().startManagingCursor(topCursor);


            getActivity().startManagingCursor(bottomCursor);


            getActivity().startManagingCursor(middleCursor);

            topadp = new TopsAdptor(getActivity(), topCursor);
            lvTops.setAdapter(topadp);

            botadp = new BottomsAdaptor(getActivity(), bottomCursor);
            lvBottoms.setAdapter(botadp);

            middleCursor = new MiddleAdptor(getActivity(), topCursor);
            lvMiddle.setAdapter(topadp);



}

As you can see I'm using a custom adapter class for each one of the listviews.

All the adapters code are the same -so here's an example -

    class BottomsAdaptor extends CursorAdapter {

    public BottomsAdaptor(Context context, Cursor c) {
        super(context, c);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void bindView(View view, Context context, Cursor cursor) {
        // TODO Auto-generated method stub
        String pic = cursor.getString(cursor
                .getColumnIndex(Constants.ITEM_PIC_URL));

        ImageView iv = (ImageView) view.findViewById(R.id.imageView_lv_bottom);




        try {
            InputStream ims;
            ims = getActivity().getAssets().open(pic);
            Drawable d = Drawable.createFromStream(ims, null);
            iv.setImageDrawable(d);

        } catch (IOException e) {


            e.printStackTrace();
        }


    }

    @Override
    public View newView(Context arg0, Cursor arg1, ViewGroup parent) {
        // TODO Auto-generated method stub
        return getActivity().getLayoutInflater().inflate(R.layout.bottoms_list_item, parent,
                false);
    }

}

Now the thing is that in small numbers of images (let's say 5 for each listview) it sure seems to work fine, but when I raise the number of images in each listview, then while scrolling down at one of the listview the app is crashing and in the log it says -

java.lang.OutOfMemoryError

Now I've also tried to use asynctask like so -

    class Asyinc extends AsyncTask<Void, Void, Void>{
     Cursor topCursor;
     Cursor bottomCursor;
     Cursor middleCursor;

    @Override
    protected Void doInBackground(Void... params) {

         topCursor = dbHand.queryByCat("tops");
         bottomCursor = dbHand.queryByCat("bottoms");
         middleCursor;= dbHand.queryByCat("dress");


        getActivity().startManagingCursor(topCursor);

        getActivity().startManagingCursor(bottomCursor);
        getActivity().startManagingCursor(middleCursor);


        return null;
    }

    @Override
    protected void onPostExecute(Void result) {

        super.onPostExecute(result);


        topadp = new TopsAdptor(getActivity(), topCursor);
        lvTops.setAdapter(topadp);


        botadp = new BottomsAdaptor(getActivity(), bottomCursor);
        lvBottoms.setAdapter(botadp);


        middleatp = new DressedAdptor(getActivity(), middleCursor);
        lvMiddle.setAdapter(middleatp);




    }

}

But still the app is crashing while trying to scrolling in the listviews.

Any ideas how may i solved this? Thanks for any kind of help

Here's the logcat error, when I used the asynctask -

    11-15 00:54:15.635: E/AndroidRuntime(4050): FATAL EXCEPTION: main
11-15 00:54:15.635: E/AndroidRuntime(4050): java.lang.OutOfMemoryError
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:500)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:353)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:781)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.graphics.drawable.Drawable.createFromStream(Drawable.java:741)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at com.example.app1.MyFrag$BottomsAdaptor.bindView(MywordFrag.java:262)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.support.v4.widget.CursorAdapter.getView(CursorAdapter.java:256)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.widget.AbsListView.obtainView(AbsListView.java:2267)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.widget.ListView.makeAndAddView(ListView.java:1769)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.widget.ListView.fillDown(ListView.java:672)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.widget.ListView.fillGap(ListView.java:636)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.widget.AbsListView.trackMotionScroll(AbsListView.java:5036)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.widget.AbsListView.scrollIfNeeded(AbsListView.java:3193)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.widget.AbsListView.startScrollIfNeeded(AbsListView.java:3138)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.widget.AbsListView.onTouchEvent(AbsListView.java:3463)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.View.dispatchTouchEvent(View.java:7127)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2170)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1905)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1925)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1379)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.app.Activity.dispatchTouchEvent(Activity.java:2396)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1873)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.View.dispatchPointerEvent(View.java:7307)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3172)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3117)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4153)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4132)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4224)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:171)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.os.MessageQueue.nativePollOnce(Native Method)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.os.MessageQueue.next(MessageQueue.java:125)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.os.Looper.loop(Looper.java:124)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at android.app.ActivityThread.main(ActivityThread.java:4745)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at java.lang.reflect.Method.invokeNative(Native Method)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at java.lang.reflect.Method.invoke(Method.java:511)
11-15 00:54:15.635: E/AndroidRuntime(4050):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:

解决方案

Either the Image sizes are too big or something else. you can try adding

android:largeHeap="true"

On your Application Tag in your manifest file. See if that solves the case. Although it is not guarantee to fix it. as stated here: http://developer.android.com/guide/topics/manifest/application-element.html

But it did fixed my out of memory error in my app. See if that helps you too.

这篇关于Android的 - 片段有三个列表视图与内存不足的错误崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆