Android 相对基本的布局导致大量OOM异常?
上面的布局似乎一直是我的Crashlytics面板中大量错误报告的来源!专门针对“内存不足异常” 此外:Android 相对基本的布局导致大量OOM异常?,android,android-layout,Android,Android Layout,上面的布局似乎一直是我的Crashlytics面板中大量错误报告的来源!专门针对“内存不足异常” 此外: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="m
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".DetailsActivity" >
<LinearLayout
android:id="@+id/header_box"
android:layout_width="fill_parent"
android:layout_height="180dp"
android:background="@drawable/header_details"
android:gravity="center_vertical"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal" >
<TextView
android:id="@+id/details_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp"
android:text="Username"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#ffffff" />
<ImageView
android:id="@+id/flag_iv"
android:layout_width="16dp"
android:layout_height="fill_parent"
android:layout_gravity="center_vertical"
android:layout_marginLeft="3dp"
android:scaleType="fitCenter"
android:src="@drawable/ic_launcher" />
</LinearLayout>
<ImageView
android:id="@+id/imageView1"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_gravity="center_horizontal|center_vertical"
android:src="@drawable/details_no_image" />
<TextView
android:id="@+id/details_age"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp"
android:text="Age"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#ffffff" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/header_box"
android:gravity="center_horizontal"
android:orientation="vertical" >
<View
android:id="@+id/divider"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="?android:attr/listDivider" />
<LinearLayout
android:id="@+id/submit_layout"
style="@style/ButtonBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:descendantFocusability="beforeDescendants"
android:minHeight="48dp"
android:orientation="horizontal" >
<Button
android:id="@+id/details_copy"
style="@style/ButtonBarButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/selectable_item_background"
android:minHeight="48dp"
android:text="Copy name and open KIK!" />
</LinearLayout>
<View
android:id="@+id/seek_divider_2"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="?android:attr/listDivider" />
<Button
android:id="@+id/details_copy_old"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="25dp"
android:text="Copy name and open KIK"
android:visibility="gone" />
<TextView
android:id="@+id/details_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="35dp"
android:gravity="center_horizontal"
android:maxWidth="500dp"
android:text="dffsdfisdojfijsadifojisdofjisdjfiosdjoifjiadjfiojsadiofjisad"
android:textStyle="italic" />
</LinearLayout>
</RelativeLayout>
无法启动活动组件信息{com.broakenmedia.kfriendfinder/com.broakenmedia.kikfriendfinder.DetailsActivity}:android.view.InflateException:二进制XML文件行#42:膨胀类时出错
请在下面的crashlytics URL上找到完整的stacktrace
我已经尽可能地优化了布局,所有的图像资源都已针对每个设备密度正确制作。我不知道除了这个我还能做什么 这里失败了:
android.graphics.BitmapFactory.NativeDecodeset(BitmapFactory.java)
如果不管理资产的大小,则会出现位图内存问题。如果您提供的资产太大,则需要对其进行下采样(或者只是将实际资产缩小)。谷歌对位图内存管理有着相当广泛的研究。我看不出我还能比现在更优化吗?我将所有位图都加载到一个小得离谱的大小来尝试解决这个问题,我也倾向于通过让“Square’s”毕加索加载我的整个图像集来避免下载/创建位图,它提供了重新采样和磁盘缓存。看起来崩溃发生在运行Android 2.3.5的Galaxy S2上。如果您已经在使用毕加索并对所有位图进行下采样,我不知道还有什么可以做。设备上的内存问题甚至更严重。您可以尝试检测操作系统是否为2.x,并进一步进行下采样。似乎绝大多数都在安卓4.3上!所以我不知道我是否在某个地方碰到了一个错误,在这一点上,我确实似乎没有什么可以做的,我只是讨厌这样离开!我不相信是布局本身造成了问题。我要看一下DetailsActivity.java第67行,还有,您使用的图像有多大?
Unable to start activity ComponentInfo{com.broakenmedia.kfriendfinder/com.broakenmedia.kikfriendfinder.DetailsActivity}: android.view.InflateException: Binary XML file line #42: Error inflating class <unknown>