我即将完成我的应用,最近我遇到了,我不能修复问题。 我的应用程序包含5点的布局,并且对于每个布局,5个布局1个活性。 现在,自从我加入广告到我的申请,我的应用程序规定采取规模巨大的RAM内存和交换崩溃几个布局之后。 我的应用程序的大小是10.8MB,但在手机上它占用的RAM内存75MB。 下面是我从logcat中得到警告: http://prntscr.com/2naqr8这里是logcat的当应用程序崩溃: http://prntscr.com/2naret第二部分: http://prntscr.com/2narhi第三部分: HTTP ://prntscr.com/2narhi
现在,我的代码是非常简单的代码,第一个活动是闪屏,第二个是菜单和其他3相同的代码。 菜单代码:
package puske.com;
import com.google.ads.AdRequest;
import com.google.ads.AdView;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class Menu extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu);
AdView myAdView = (AdView)findViewById(R.id.adView);
AdRequest adRequest = new AdRequest();
myAdView.loadAd(adRequest);
Button button1=(Button)findViewById(R.id.menu1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Menu.this, Rifles.class));
finish();
}
});
}
在此之后它repeats2其他2个活动时间。 我的其他3个活动是一样的,唯一不同的是资源。
package puske.com;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
public class Pistols extends Activity {
private SeekBar volumeSeekbar = null;
private AudioManager audioManager = null;
MediaPlayer mp, mp2, mp3, mp4, mp5, mp6;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pistols);
setVolumeControlStream(AudioManager.STREAM_MUSIC);
initControls();
mp=MediaPlayer.create(this, R.raw.glock);
ImageButton abt1 = (ImageButton) findViewById(R.id.abt1);
abt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mp2.isPlaying()){
mp2.pause();
mp2.seekTo(0);
}
if (mp3.isPlaying()){
mp3.pause();
mp3.seekTo(0);
}
if (mp4.isPlaying()){
mp4.pause();
mp4.seekTo(0);
}
if (mp5.isPlaying()){
mp5.pause();
mp5.seekTo(0);
}
if (mp6.isPlaying()){
mp6.pause();
mp6.seekTo(0);
}
if (mp.isPlaying()){
mp.pause();
mp.seekTo(0);
}
else{
mp.start();
}
}
});
@Override
protected void onDestroy() {
super.onDestroy();
// explicitly release media player
unbindDrawables(findViewById(R.id.pistolz));
System.gc();
}
/**
* Unbinds all drawables in a given view (and its child tree).
*
* @param findViewById Root view of the tree to unbind
*/
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));
}
try
{
((ViewGroup) view).removeAllViews();
}
catch(UnsupportedOperationException ignore)
{
//if can't remove all view (e.g. adapter view) - no problem
}
if(mp!=null){
mp.stop();
mp.release();
mp = null;
}
if(mp2!=null){
mp2.stop();
mp2.release();
mp2 = null;
}
if(mp3!=null){
mp3.stop();
mp3.release();
mp3 = null;
}
if(mp4!=null){
mp4.stop();
mp4.release();
mp4 = null;
}
if(mp5!=null){
mp5.stop();
mp5.release();
mp5 = null;
}
if(mp6!=null){
mp6.stop();
mp6.release();
mp6 = null;
}
findViewById(R.id.pistolz).setVisibility(View.GONE);
}
}
@Override
public void onBackPressed() {
super.onBackPressed();
startActivity(new Intent(Pistols.this, Menu.class));
this.finish();
}
}
这就是它,整个代码我解除绑定所有的图形内容发布MP和活动,仍然赌注上的设备和崩溃太多空间。 任何人都知道可能会导致什么呢? 最后,这里是我的XML,再次,它同样为所有布局除了IDS和资源
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@color/black"
android:id="@+id/riflez" >
<SeekBar
android:id="@+id/sikbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="48dp"/>
<ImageButton
android:id="@+id/bt1"
android:layout_width="130dp"
android:layout_height="90dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:background="@null"
android:scaleType="fitXY"
android:src="@drawable/emka" />
<ImageButton
android:id="@+id/bt2"
android:layout_width="130dp"
android:layout_height="90dp"
android:layout_alignRight="@+id/sikbar"
android:layout_alignTop="@+id/bt1"
android:background="@null"
android:scaleType="fitXY"
android:src="@drawable/kalas" />
<ImageButton
android:id="@+id/bt3"
android:layout_width="130dp"
android:layout_height="90dp"
android:layout_alignLeft="@+id/bt1"
android:layout_below="@+id/bt1"
android:layout_marginTop="26dp"
android:background="@null"
android:scaleType="fitXY"
android:src="@drawable/famas" />
<ImageButton
android:id="@+id/bt4"
android:layout_width="130dp"
android:layout_height="90dp"
android:layout_alignLeft="@+id/bt2"
android:layout_alignTop="@+id/bt3"
android:background="@null"
android:scaleType="fitXY"
android:src="@drawable/hekler" />
<ImageButton
android:id="@+id/bt5"
android:layout_width="130dp"
android:layout_height="90dp"
android:layout_alignLeft="@+id/bt3"
android:layout_below="@+id/bt3"
android:layout_marginTop="26dp"
android:background="@null"
android:scaleType="fitXY"
android:src="@drawable/sporet" />
<ImageButton
android:id="@+id/bt6"
android:layout_width="130dp"
android:layout_height="90dp"
android:layout_alignLeft="@+id/bt4"
android:layout_alignTop="@+id/bt5"
android:background="@null"
android:scaleType="fitXY"
android:src="@drawable/uzi" />
<com.google.ads.AdView
android:id="@+id/adView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="THE ID"
ads:loadAdOnCreate="true" >
</com.google.ads.AdView>