2017-12-14 16 views
0

, 내 문제는 오류 관련이 없습니다. 동일한 배경을 사용하는 레이아웃을 3 개 설정했지만이 오류가 계속 발생하는 레이아웃은 1 개뿐입니다. 배경을 설정할 때 오류가 시작되었습니다. 배경 없이는 문제없이 실행할 수 있습니다. 그러나 내가 해결하고자하는 것은 메모리 부족 오류를 수정하는 방법이며이 레이아웃은 오류를 생성하는 반면 다른 두 가지는 오류를 생성하지 않습니다. 코드는 거의 동일합니다. java.lang.OutOfMemoryError와는 : 하나의 레이아웃에 일어난하지만 제목이 언급 한 바와 같이 다른 사람이

오류를 생성하는 레이아웃입니다.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@drawable/seabg"> 

<ImageView 
    android:layout_width="match_parent" 
    android:layout_height="200dp" 
    app:srcCompat="@drawable/f1" 
    android:id="@+id/imageView" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" /> 

<Button 
    android:text="CLICK" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="177dp" 
    android:id="@+id/btnf" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" /> 
<ImageView 
    android:layout_width="match_parent" 
    android:layout_height="200dp" 
    app:srcCompat="@drawable/ferry" 
    android:id="@+id/imageView1" 
    android:layout_marginBottom="36dp" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" /> 
</RelativeLayout> 

한편, 이것은 오류없이 정상적으로 실행할 수있는 것입니다. (이 코드는 첫 번째 ImageView이 다른 동일 보이기 때문에 약간의 공간을 절약, 두 개의 레이아웃해야합니다.)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@drawable/seabg"> 

<ImageView 
    android:layout_width="match_parent" 
    android:layout_height="200dp" 
    app:srcCompat="@drawable/y1" 
    android:id="@+id/imageView" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" /> 

<Button 
    android:text="CLICK" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="177dp" 
    android:id="@+id/btny" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" /> 

<ImageView 
    android:layout_width="match_parent" 
    android:layout_height="200dp" 
    app:srcCompat="@drawable/yacht" 
    android:id="@+id/imageView1" 
    android:layout_marginBottom="36dp" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" /> 
</RelativeLayout> 

편집 :이 오류를 생산하는 일에 대한 내 활동이다.

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

    final MediaPlayer fSound = MediaPlayer.create(this, R.raw.ferry); 
    btnf = (Button) findViewById(R.id.btnf); 
    btnf.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View view) { 
      fSound.start(); 
     } 
    }); 

} 

그리고 아무런 문제없이 실행할 수 있습니다.

super.onCreate(savedInstanceState); 
    setContentView(R.layout.layout_y); 

    final MediaPlayer ySound = MediaPlayer.create(this, R.raw.yacht); 
    btny = (Button) findViewById(R.id.btny); 
    btny.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View view) { 
      ySound.start(); 
     } 
    }); 

} 
+1

당신이 당신의 활동에'ImageView'를 사용하십니까? 관련 활동 코드를 게시 할 수 있습니까? 두 이미지를 포함 할 수 있습니까? –

+0

Nicolas와 동의하면, 매우 큰 이미지가있는 여러 OutOfMemoryError가 발생했습니다. 이미지 자체를 가리 키지 않기 때문에 추적하기가 매우 어렵습니다. –

+0

이 문제도 발생했습니다. 더 나은 이해를 위해 설명서를 권합니다. https://developer.android.com/topic/performance/graphics/load-bitmap.html –

답변

0

이미지보기를 제거하거나 이미지 src를 낮은 해상도로 변경해보십시오! 이것은 당신의 문제를 해결할 수 있습니다!

+0

답변 해 주셔서 감사합니다! 실제로는 해상도와 관련이 있지만 이미지 뷰를 제거 할 필요는 없습니다. 시간 내 줘서 고마워! –