0

I have an android app with the main activity (MainMenu). sometimes when i run it i get the below error.

this does not happen all the time.... this is a simple activity with a few pictures in the layput.

the error:

01-11 17:58:45.638: E/AndroidRuntime(13960): FATAL EXCEPTION: main
01-11 17:58:45.638: E/AndroidRuntime(13960): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mycity.roshhaayn/com.city.base.MainMenu}: android.view.InflateException: Binary XML file line #85: Error inflating class <unknown>
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1967)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.app.ActivityThread.access$600(ActivityThread.java:127)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.os.Handler.dispatchMessage(Handler.java:99)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.os.Looper.loop(Looper.java:137)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.app.ActivityThread.main(ActivityThread.java:4511)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at java.lang.reflect.Method.invokeNative(Native Method)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at java.lang.reflect.Method.invoke(Method.java:511)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at dalvik.system.NativeStart.main(Native Method)
01-11 17:58:45.638: E/AndroidRuntime(13960): Caused by: android.view.InflateException: Binary XML file line #85: Error inflating class <unknown>
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.view.LayoutInflater.createView(LayoutInflater.java:606)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:653)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:678)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:739)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:742)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:272)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.app.Activity.setContentView(Activity.java:1835)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at com.city.base.MainMenu.onCreate(MainMenu.java:72)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.app.Activity.performCreate(Activity.java:4470)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1052)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1931)
01-11 17:58:45.638: E/AndroidRuntime(13960):    ... 11 more
01-11 17:58:45.638: E/AndroidRuntime(13960): Caused by: java.lang.reflect.InvocationTargetException
01-11 17:58:45.638: E/AndroidRuntime(13960):    at java.lang.reflect.Constructor.constructNative(Native Method)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.view.LayoutInflater.createView(LayoutInflater.java:586)
01-11 17:58:45.638: E/AndroidRuntime(13960):    ... 25 more
01-11 17:58:45.638: E/AndroidRuntime(13960): Caused by: java.lang.OutOfMemoryError
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.graphics.Bitmap.nativeCreate(Native Method)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.graphics.Bitmap.createBitmap(Bitmap.java:605)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.graphics.Bitmap.createBitmap(Bitmap.java:551)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:437)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.graphics.BitmapFactory.finishDecode(BitmapFactory.java:618)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:593)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:445)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:773)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.content.res.Resources.loadDrawable(Resources.java:1968)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.content.res.Resources.getDrawable(Resources.java:677)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:173)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:867)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.graphics.drawable.Drawable.createFromXml(Drawable.java:804)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.content.res.Resources.loadDrawable(Resources.java:1953)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.view.View.<init>(View.java:2841)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.view.View.<init>(View.java:2778)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.view.ViewGroup.<init>(ViewGroup.java:380)
01-11 17:58:45.638: E/AndroidRuntime(13960):    at android.widget.RelativeLayout.<init>(RelativeLayout.java:174)
01-11 17:58:45.638: E/AndroidRuntime(13960):    ... 28 more         '

my activity is:

    public class MainMenu extends CityBase
    {

        RelativeLayout messenger;
        RelativeLayout contact_center;
        RelativeLayout settings;
        RelativeLayout facebook;
        RelativeLayout web;


        @Override
        protected void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);

            setContentView(R.layout.main_menu);

            //LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
            //LinearLayout ll = (LinearLayout) inflater.inflate(R.layout.mm_btns, null);

            //LinearLayout bigLL = (LinearLayout) findViewById(R.id.big_lay);
            //bigLL.addView(ll);

            messenger = (RelativeLayout) findViewById(R.id.messenger);  
            messenger.setOnClickListener(new OnClickListener() {    
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(getApplicationContext(), Messenger.class);
                    startActivity(intent);

                }
            });

            contact_center = (RelativeLayout) findViewById(R.id.contact_center);    
            contact_center.setOnClickListener(new OnClickListener() {   
                @Override
                public void onClick(View v) {
                    Intent intent_c_m = new Intent(getApplicationContext(),ContactCenter.class);
                    startActivity(intent_c_m);

                }
            });

            Button web = (Button) findViewById(R.id.web_icon);
            //web.setBackgroundResource(R.drawable.arrow_green);
            web.setOnClickListener(new OnClickListener() {  
                @Override
                public void onClick(View v) {
                    Intent i = new Intent(Intent.ACTION_VIEW);
                    i.setData(Uri.parse(AppDelegate.WEBSITE_URL));
                    startActivity(i);

                }
            });

            Button facebookBtn = (Button) findViewById(R.id.facebook_icon);
            //facebookBtn.setBackgroundResource(R.drawable.arrow_green);
            facebookBtn.setOnClickListener(new OnClickListener() {  
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(Intent.ACTION_VIEW);
                    intent.setData(Uri.parse(AppDelegate.FACEBOOK_URL));
                    startActivity(intent);

                }
            });


            Button profile = (Button) findViewById(R.id.settings_icon); 
            //profile.setBackgroundResource(R.drawable.arrow_green);
            profile.setOnClickListener(new OnClickListener() {  
                @Override
                public void onClick(View v) {

                    SharedPreferences sp = getSharedPreferences("user_data",0);
                    Editor edit = sp.edit();
                    edit.putString("mode", "update");
                    edit.commit();

                    Intent intent = new Intent(getApplicationContext(), RegisterBase.class);
                    startActivity(intent);

                }
            });
            Button dialer = (Button) findViewById(R.id.dialer_icon);
            //dialer.setBackgroundResource(R.drawable.arrow_green);
            dialer.setOnClickListener(new OnClickListener() {   
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(getApplicationContext(), CityDialer.class);
                    startActivity(intent);
                }
            });


        }

         private void unbindDrawables(View view) {
                if (view.getBackground() != null) {
                view.getBackground().setCallback(null);
                }
                if (view instanceof ViewGroup) {
                    for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
                    unbindDrawables(((ViewGroup) view).getChildAt(i));
                    }
                ((ViewGroup) view).removeAllViews();
                }
            }

        @Override
        protected void onDestroy() {
            // TODO Auto-generated method stub
            super.onDestroy();
               unbindDrawables(findViewById(R.id.huge_lay));
               //unbindDrawables(findViewById(R.id.contact_center));
                System.gc();
                Runtime.getRuntime().gc();
        }  '

my XML is:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/huge_lay"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/back_texture"
        android:orientation="vertical" >

        <LinearLayout
            android:id="@+id/big_lay"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="15dp"
            android:layout_marginRight="15dp"
            android:orientation="vertical" >

            <ImageView
                android:layout_width="fill_parent"
                android:layout_height="150dp"
                android:layout_marginLeft="3dp"
                android:layout_marginRight="3dp"
                android:contentDescription="Logo for the city of Rosh-Ha&apos;ayin"
                android:src="@drawable/rosh_new_logo2" />

            <RelativeLayout
                android:id="@+id/messenger"
                android:layout_width="wrap_content"
                android:layout_height="76dp"
                android:background="@drawable/mm_messages" >

                <ImageView
                    android:id="@+id/messages_icon"
                    android:layout_width="68dp"
                    android:layout_height="68dp"
                    android:layout_alignParentRight="true"
                    android:layout_alignParentTop="true"
                    android:layout_marginLeft="8dp"
                    android:src="@drawable/icon_messages"
                    android:visibility="invisible" />

                <RelativeLayout
                    android:id="@+id/text_msgs"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerVertical="true"
                    android:layout_marginRight="5dp"
                    android:layout_toLeftOf="@+id/messages_icon" >

                    <TextView
                        android:id="@+id/messages_title"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentRight="true"
                        android:text="@string/your_messages"
                        android:textColor="@color/grey"
                        android:textSize="20dp"
                        android:textStyle="bold" />

                    <TextView
                        android:id="@+id/textView1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentRight="true"
                        android:layout_below="@+id/messages_title"
                        android:text="@string/your_messages_desc"
                        android:textColor="@color/grey"
                        android:textSize="13sp" />

                    <TextView
                        android:id="@+id/textView2"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentRight="true"
                        android:layout_below="@+id/textView1"
                        android:text="@string/your_messages_desc2"
                        android:textColor="@color/grey"
                        android:textSize="13sp" />
                </RelativeLayout>




            </RelativeLayout>


            <RelativeLayout
                android:id="@+id/contact_center"
                android:layout_width="wrap_content"
                android:layout_height="76dp"
                android:background="@drawable/cc_messages" >

             <ImageView
                    android:id="@+id/messages_icon1"
                    android:layout_width="68dp"
                    android:layout_height="68dp"
                    android:layout_alignParentRight="true"
                    android:layout_alignParentTop="true"
                    android:layout_marginLeft="8dp"
                    android:src="@drawable/icon_messages"
                    android:visibility="invisible" />

                <RelativeLayout
                    android:id="@+id/text_msgs1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerVertical="true"
                    android:layout_marginRight="5dp"
                    android:layout_toLeftOf="@+id/messages_icon1" >

                    <TextView
                        android:id="@+id/messages_title1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentRight="true"
                        android:text="@string/contact_moked_menu"
                        android:textColor="@color/grey"
                        android:textSize="20dp"
                        android:textStyle="bold" />

                    <TextView
                        android:id="@+id/textView11"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentRight="true"

                        android:layout_below="@+id/messages_title1"
                        android:text="@string/contact_moked_desc_menu"
                        android:textColor="@color/grey"
                        android:textSize="13sp" />                
                </RelativeLayout>


            </RelativeLayout>

            <LinearLayout
                android:id="@+id/linearLayout1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:layout_marginTop="12dp"
                android:orientation="horizontal" >

                <RelativeLayout
                    android:id="@+id/settings"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="6dp" >

                    <Button
                        android:id="@+id/settings_icon"
                        android:layout_width="68dp"
                        android:layout_height="68dp"
                        android:background="@drawable/mm_profile"
                         />
    <!--  -->
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/settings_icon"
                        android:layout_centerInParent="true"
                        android:gravity="center_vertical"
                        android:text="@string/profile"
                        android:textColor="@color/black" />
                </RelativeLayout>

                <RelativeLayout
                    android:id="@+id/web"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="6dp" >

                    <Button
                        android:id="@+id/web_icon"
                        android:layout_width="68dp"
                        android:layout_height="68dp"
                        android:background="@drawable/mm_website"
                         />
    <!--  -->
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/web_icon"
                        android:layout_centerInParent="true"
                        android:gravity="center"
                        android:text="@string/web"
                        android:textColor="@color/black" />
                </RelativeLayout>

                <RelativeLayout
                    android:id="@+id/facebook"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="6dp" >

                    <Button
                        android:id="@+id/facebook_icon"
                        android:layout_width="68dp"
                        android:layout_height="68dp"
                        android:background="@drawable/mm_facebook"
                         />
                    <!--  -->

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/facebook_icon"
                        android:layout_centerInParent="true"
                        android:gravity="center_vertical"
                        android:text="@string/facebook"
                        android:textColor="@color/black" />
                </RelativeLayout>


                <RelativeLayout
                    android:id="@+id/dialer"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" >

                    <!--  -->

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerInParent="true"
                        android:text="@string/dialer"
                        android:textColor="@color/black" />

                    <Button
                        android:id="@+id/dialer_icon"
                        android:layout_width="68dp"
                        android:layout_height="68dp"
                        android:layout_alignParentLeft="true"
                        android:layout_alignParentTop="true"
                        android:background="@drawable/mm_fast_dial" />
                </RelativeLayout>

            </LinearLayout>
        </LinearLayout>

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_marginBottom="10dp" >

            <ImageView
                android:id="@+id/bottom_logo"
                android:layout_width="200dp"
                android:layout_height="30dp"
                android:layout_marginBottom="5dp"
                android:layout_marginTop="5dp"
                android:src="@drawable/my_city_bottom_logo" />
        </RelativeLayout>

    </RelativeLayout>

Please help, Thanks

Dixit Patel
  • 3,190
  • 1
  • 24
  • 36
Yuval
  • 97
  • 1
  • 9
  • what is line 72 of the .java file ? – Konrad Winkowski Jan 11 '13 at 17:53
  • System.gc();Runtime.getRuntime().gc(); remove this line and check for reason http://stackoverflow.com/a/2414120/1339473 – QuokMoon Jan 11 '13 at 18:02
  • I used images too and sometimes I was getting the same problem with memory. I was forced to resize the original image in a 'sample'. Maybe your images are too big, and with other process running in the device (sometimes more than other times), you get this error randomly. Try to resize your images and get images just the size to fit your need. – William Da Silva Jan 11 '13 at 18:04
  • the images i am using are not big 14K each or so so that can not be the reason.. – Yuval Jan 11 '13 at 18:37
  • the line super.onCreate(savedInstanceState); is necessary. – Yuval Jan 11 '13 at 18:40
  • removed the garbage collector and still i get the error... – Yuval Jan 11 '13 at 18:42
  • i found that this happens after i am using the GPS to get the location.. can that be somthing with the GSP? with the location manager? – Yuval Jan 11 '13 at 18:43

1 Answers1

0

Issue is with your images. Looks like you are loading heavy images.

Amrut
  • 543
  • 4
  • 8
  • i added up using android:largeHeap="true" in the manifest file and that fixed it at least for ICS – Yuval Jan 12 '13 at 16:50