2016-03-13 88 views
0

我正在写一个android应用程序,并且遇到问题。每隔一段时间,当切换活动时,应用程序在setContentView上崩溃。它并不总是在同一个活动上。该错误消息我得到的是如下:Android应用程序在切换活动时崩溃

产生的原因:java.lang.OutOfMemoryError:无法分配与16777216个免费字节一个字节24263724分配和22MB直到OOM

产生的原因:机器人.view.InflateException:二进制XML文件行#1:错误膨胀类

任何帮助将不胜感激。

编辑:每次打开第三个新活动时都会发生这种情况。

下面是我的一些代码: 活动1

public void firstroom(View view){ 
    Intent firstroom=new Intent(this, firstroom.class); 
    putextras(firstroom); 
    startActivity(firstroom); 
} 
public void putextras(Intent play){ 
    play.putExtra("doortoroom2", doortoroom2); 
    play.putExtra("doortoroom3", doortoroom3); 
    play.putExtra("endlockkey", endlockkey); 
    play.putExtra("endlockcombo", endlockcombo); 
    play.putExtra("endlockcolor", endlockcolor); 
    play.putExtra("havekey", havekey); 
    play.putExtra("havecrowbar", havecrowbar); 
    play.putExtra("haveflashlight", haveflashlight); 
    play.putExtra("keyselected", keyselected); 
    play.putExtra("crowbarselected", crowbarselected); 
    play.putExtra("flashlightselected", flashlightselected); 
} 

活动2

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_firstroom); 

XML

<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" android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
android:paddingBottom="@dimen/activity_vertical_margin" 
tools:context="com.mattdevelopment01.mateusz.escaperoom.escaperoom.firstroom" 
android:background="@drawable/firstroom"> 

<Button 
    style="?android:attr/borderlessButtonStyle" 
    android:layout_width="150dp" 
    android:layout_height="200dp" 
    android:id="@+id/secondroom" 
    android:layout_marginBottom="52dp" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:background="@android:color/transparent" 
    android:onClick="blueroom" /> 

<Button 
    style="?android:attr/borderlessButtonStyle" 
    android:layout_width="150dp" 
    android:layout_height="200dp" 
    android:id="@+id/end" 
    android:background="@android:color/transparent" 
    android:layout_alignTop="@+id/secondroom" 
    android:layout_toRightOf="@+id/secondroom" 
    android:layout_toEndOf="@+id/secondroom" 
    android:onClick="freedom" /> 

<Button 
    style="?android:attr/borderlessButtonStyle" 
    android:layout_width="75dp" 
    android:layout_height="35dp" 
    android:id="@+id/topdrawer" 
    android:layout_marginLeft="73dp" 
    android:layout_marginStart="73dp" 
    android:layout_marginBottom="37dp" 
    android:layout_alignBottom="@+id/end" 
    android:layout_toRightOf="@+id/end" 
    android:layout_toEndOf="@+id/end" 
    android:background="@android:color/transparent" 
    android:onClick="topdrawer" /> 

<Button 
    style="?android:attr/borderlessButtonStyle" 
    android:layout_width="75dp" 
    android:layout_height="35dp" 
    android:id="@+id/bottomdrawer" 
    android:background="@android:color/transparent" 
    android:layout_alignBottom="@+id/end" 
    android:layout_alignLeft="@+id/topdrawer" 
    android:layout_alignStart="@+id/topdrawer" 
    android:onClick="bottomdrawer" /> 

<Button 
    style="?android:attr/borderlessButtonStyle" 
    android:layout_width="25dp" 
    android:layout_height="25dp" 
    android:id="@+id/endkey" 
    android:layout_marginLeft="20dp" 
    android:layout_marginStart="20dp" 
    android:background="@android:color/transparent" 
    android:layout_above="@+id/endcombo" 
    android:layout_alignLeft="@+id/end" 
    android:layout_alignStart="@+id/end" 
    android:onClick="endkey" /> 

<Button 
    style="?android:attr/borderlessButtonStyle" 
    android:layout_width="50dp" 
    android:layout_height="25dp" 
    android:id="@+id/endcombo" 
    android:background="@android:color/transparent" 
    android:layout_above="@+id/endcolor" 
    android:layout_alignLeft="@+id/endcolor" 
    android:layout_alignStart="@+id/endcolor" 
    android:onClick="endcombo" /> 

<Button 
    style="?android:attr/borderlessButtonStyle" 
    android:layout_width="50dp" 
    android:layout_height="25dp" 
    android:id="@+id/endcolor" 
    android:background="@android:color/transparent" 
    android:layout_alignBottom="@+id/topdrawer" 
    android:layout_alignLeft="@+id/endkey" 
    android:layout_alignStart="@+id/endkey" 
    android:onClick="endcolor" /> 

<Button 
    style="?android:attr/borderlessButtonStyle" 
    android:layout_width="50dp" 
    android:layout_height="45dp" 
    android:id="@+id/key" 
    android:layout_marginLeft="51dp" 
    android:layout_marginStart="51dp" 
    android:background="@drawable/key" 
    android:onClick="key" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" /> 

<Button 
    style="?android:attr/borderlessButtonStyle" 
    android:layout_width="50dp" 
    android:layout_height="45dp" 
    android:id="@+id/flashlight" 
    android:background="@drawable/flashlight" 
    android:onClick="flashlight" 
    android:layout_alignParentBottom="true" 
    android:layout_toRightOf="@+id/crowbarget" 
    android:layout_toEndOf="@+id/crowbarget" /> 

<Button 
    style="?android:attr/borderlessButtonStyle" 
    android:layout_width="50dp" 
    android:layout_height="45dp" 
    android:id="@+id/crowbarget" 
    android:background="@drawable/crowbar" 
    android:onClick="crowbar" 
    android:layout_alignParentBottom="true" 
    android:layout_toRightOf="@+id/key" 
    android:layout_toEndOf="@+id/key" /> 

+0

您在某种程度上要求系统分配近2 Gb的内存。也许一些动态数组太大,这是由一个错误引起的。如果你自己找不到解决方案,请显示一些你的代码。 –

+0

我认为这是一个无限循环的情况。请显示你的代码。 – OShiffer

+0

刚刚添加了代码 –

回答

0

可以使用Android:largeHea在您的Android清单中请求一个更大的堆大小p =“true”

+0

在这种情况下,这不是一个好主意:[“绝不会因为内存不足而请求较大的堆大小]”(http://developer.android.com/training/articles/memory.html# CheckHowMuchMemory) – PPartisan

+0

这有效,但更好的解决方案会有所帮助。 –

+0

请发布堆栈跟踪并描述通过putExtra()添加的对象类型。 – hg123

相关问题