我一直在我的開發者控制檯看到此內存不足的錯誤,我不知道什麼時候,爲什麼的OutOfMemoryError充氣佈局
日誌:
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)
這是我的佈局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>
錯誤所在的行是setContentView(r.layout.mylayout)
。在這個佈局中沒有大的圖像,大多數都是小的imagebuttons
共有6張圖像(biggest image is 90x90)
和一大堆文字scrollview
。所以我該如何解決這個問題?
只是出於好奇,你有沒有嘗試過使用佈局文件沒有圖像? 「一堆文字」多少錢? – Luksprog
@tyczj:你在'ScrollView'中放置'TextView'有什麼原因嗎?看起來沒有必要,因爲'TextView'可以處理自己的滾動。 – Squonk
這正是我的logcat。這裏的主要問題是什麼? – alicanbatur