2013-01-11 17 views
0

我有一個主要活動(MainMenu)的Android應用程序。 有時當我運行它我得到下面的錯誤。android在一個簡單的活動內存不足

這不會一直髮生....這是一個簡單的活動,有幾張圖片在layput。

錯誤

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   ' 

我的活動是:

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(); 
     } ' 

我的XML是:

<?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> 

請HEL p, 謝謝

+0

.java文件的第72行是什麼? –

+0

System.gc(); Runtime.getRuntime()。gc();刪除此行,並檢查原因http://stackoverflow.com/a/2414120/1339473 – QuokMoon

+0

我也使用過圖像,有時我得到了與內存相同的問題。我被迫將原始圖像調整爲「樣本」。也許你的圖像太大了,並且在設備上運行其他進程(有時比其他時間更多),你會隨機得到這個錯誤。嘗試調整圖像大小並獲得適合您需要的圖像大小。 –

回答

0

問題與您的圖像。看起來你正在加載沉重的圖像。

+0

圖像是非常小的每個16K .... – Yuval

+0

我在清單文件中使用android:largeHeap =「true」添加並修復它至少爲ICS – Yuval