5

I keep seeing this out of memory error in my developer console and I do not know why

log:

android.view.InflateException: Binary XML file line #52: Error inflating class <unknown>
at android.view.LayoutInflater.createView(LayoutInflater.java:518)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:626)
at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:212)
at android.app.Dialog.setContentView(Dialog.java:421)
at ecm2.android.MessageDialog.PopUpMessage(MessageDialog.java:90)
at ecm2.android.MainActivity.PopMessage(MainActivity.java:1830)
at ecm2.android.MainActivity$10.onItemClick(MainActivity.java:1355)
at android.widget.AdapterView.performItemClick(AdapterView.java:284)
at android.widget.ListView.performItemClick(ListView.java:3513)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:1812)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:3703)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
at android.view.LayoutInflater.createView(LayoutInflater.java:505)
... 24 more
Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:460)
at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:336)
at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:697)
at android.content.res.Resources.loadDrawable(Resources.java:1709)
at android.content.res.Resources.getDrawable(Resources.java:581)
at android.widget.ScrollView.setOverScrollMode(ScrollView.java:1404)
at android.view.View.<init>(View.java:1879)
at android.view.View.<init>(View.java:1921)
at android.view.ViewGroup.<init>(ViewGroup.java:292)
at android.widget.FrameLayout.<init>(FrameLayout.java:88)
at android.widget.ScrollView.<init>(ScrollView.java:145)
at android.widget.ScrollView.<init>(ScrollView.java:141)

this is my layout XML

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_root"              
android:orientation="vertical"
android:layout_height="match_parent"
android:padding="2dip" android:paddingTop="2dip" android:layout_width="fill_parent">

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_height="match_parent"
    android:padding="0dip" android:layout_width="fill_parent">

    <RelativeLayout
        android:id="@+id/contentLayout2" 
        android:orientation="vertical" 
        android:padding="0dip" 
        android:layout_height="wrap_content"
        android:layout_gravity="top|left"
        android:background="#000000"
        android:layout_weight="0" android:layout_width="fill_parent">   

        <ImageView 
            android:id="@+id/imgIcon" 
            android:layout_height="wrap_content" 
            android:layout_width="wrap_content"
            android:layout_gravity="top|left" android:contentDescription="@string/desc">
        </ImageView>

        <TextView 
            android:layout_height="wrap_content" 
            android:text="" 
            android:id="@+id/txtDialogHeader" 
            android:layout_width="match_parent" 
            android:textStyle="bold" 
            android:layout_toRightOf="@id/imgIcon"
            android:paddingLeft="5dip" android:textColor="#ff2525" android:textSize="18dip">
        </TextView>

        <TextView 
            android:layout_height="wrap_content" 
            android:text="" 
            android:id="@+id/txtDialogTOC" 
            android:layout_width="match_parent" 
            android:layout_toRightOf="@id/imgIcon"
            android:layout_below="@id/txtDialogHeader"
            android:paddingLeft="5dip" android:textSize="19dip" android:textStyle="bold">
        </TextView>

    </RelativeLayout>

    <ScrollView    
        android:id="@+id/scrollMessageFrame"  
        android:layout_height="match_parent" 
        android:padding="0dip"
        android:background="#AA0000"
        android:layout_weight="1" android:layout_width="fill_parent">

        <TextView 
            android:layout_height="wrap_content" 
            android:layout_width="match_parent" 
            android:text="" 
            android:id="@+id/lblMessage"  
            android:padding="5dip"
            android:background="#000000"
            android:minHeight="140dip" android:textColor="#f2f2f2" android:textSize="20dip">
        </TextView>

    </ScrollView> 

    <RelativeLayout
        android:id="@+id/contentLayout3" 
        android:orientation="vertical" 
        android:background="#000000" 
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|center_horizontal" android:gravity="center_horizontal" android:layout_width="match_parent">

        <ImageButton
            android:id="@+id/cmdResponding"
            android:layout_width="62dip"
            android:layout_height="62dip"
            android:layout_marginRight="10dip"
            android:contentDescription="@string/desc"
            android:src="@drawable/responding_ref" android:background="@drawable/responding_up" android:layout_marginTop="5dip" android:layout_marginLeft="5dip">
</ImageButton>
        <ImageButton android:id="@+id/cmdDeclining" android:src="@drawable/declining_ref" android:background="@drawable/declining_up" android:layout_alignTop="@+id/cmdResponding" android:layout_alignBottom="@+id/cmdResponding" android:layout_height="62dip" android:layout_width="62dip" android:layout_marginLeft="3dip" android:layout_toRightOf="@+id/cmdResponding" android:layout_marginRight="10dip" android:contentDescription="@string/desc"></ImageButton>

        <ImageButton
            android:id="@+id/cmdChiefList"
            android:layout_width="62dip"
            android:layout_height="62dip"
            android:layout_toRightOf="@+id/cmdDeclining" android:background="@drawable/chief_up" android:layout_marginRight="10dip" android:src="@drawable/chief_ref" android:contentDescription="@string/desc" android:layout_marginTop="5dip" android:layout_marginLeft="6dip"/>

        <ImageButton android:id="@+id/cmdMapping" android:background="@drawable/globe_up" android:src="@drawable/mapping_ref" android:layout_height="60dip" android:layout_width="60dip" android:layout_marginLeft="2dip" android:layout_toRightOf="@+id/cmdChiefList" android:layout_marginTop="5dip" android:contentDescription="@string/desc"></ImageButton>

    </RelativeLayout>

</LinearLayout>

<Button 
    android:text="" 
    android:textSize="16dip"
    android:layout_height="40dip" 
    android:layout_width="40dip" 
    android:id="@+id/cmdExit" 
    android:background="@drawable/closepopup"
    android:layout_gravity="top|right" android:contentDescription="@string/desc">
</Button>

</FrameLayout>

the line where the error is, is at the setContentView(r.layout.mylayout). there are no big images in this layout, most are small imagebuttons 6 images in total (biggest image is 90x90) and a bunch of text in a scrollview. so how can I get around this?

3
  • Just out of curiosity, have you tried using the layout file without the images? How much is a bunch of text? Commented May 29, 2012 at 20:32
  • @tyczj : Is there a reason you are putting a TextView in a ScrollView? It seems unnecessary as TextView can handle its own scrolling. Commented May 29, 2012 at 20:43
  • This is exactly my logcat. And what is the main problem here ? Commented Oct 5, 2013 at 9:08

2 Answers 2

1

The "bunch of text in a scrollview" will generate a huge image even if only a small fraction of the text is visible at a time, thanks to the scrollview.

Try to determine which part of the text is going to be visible, and process only that.

Sign up to request clarification or add additional context in comments.

Comments

1

Your layout looks complicated. Try replacing all the different kinds of layouts with just one RelativeLayout.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.