Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 应用程序意外停止_Android_Android Emulator - Fatal编程技术网

Android 应用程序意外停止

Android 应用程序意外停止,android,android-emulator,Android,Android Emulator,我正在尝试制作一个简单的应用程序,当用户点击一个按钮时,它可以播放随机声音。该应用程序启动时没有问题,在崩溃前会随机播放大量声音。我找不到任何类似的问题,这就是为什么我要发布这个 这是我的日志: 08-09 10:10:16.706: D/dalvikvm(265): GC freed 571 objects / 49008 bytes in 128ms 08-09 10:10:18.896: W/MediaPlayer(265): info/warning (1, 44) 08-09 10:1

我正在尝试制作一个简单的应用程序,当用户点击一个按钮时,它可以播放随机声音。该应用程序启动时没有问题,在崩溃前会随机播放大量声音。我找不到任何类似的问题,这就是为什么我要发布这个

这是我的日志:

08-09 10:10:16.706: D/dalvikvm(265): GC freed 571 objects / 49008 bytes in 128ms
08-09 10:10:18.896: W/MediaPlayer(265): info/warning (1, 44)
08-09 10:10:19.036: I/MediaPlayer(265): Info (1,44)
08-09 10:10:19.036: W/MediaPlayer(265): info/warning (1, 44)
08-09 10:10:19.036: I/MediaPlayer(265): Info (1,44)
08-09 10:10:19.236: W/MediaPlayer(265): info/warning (1, 44)
08-09 10:10:19.336: I/MediaPlayer(265): Info (1,44)
08-09 10:10:19.346: W/MediaPlayer(265): info/warning (1, 44)
08-09 10:10:19.346: I/MediaPlayer(265): Info (1,44)
08-09 10:10:19.746: W/MediaPlayer(265): info/warning (1, 44)
08-09 10:10:19.856: I/MediaPlayer(265): Info (1,44)
08-09 10:10:20.016: W/MediaPlayer(265): info/warning (1, 44)
08-09 10:10:20.166: I/MediaPlayer(265): Info (1,44)
08-09 10:10:20.166: W/MediaPlayer(265): info/warning (1, 44)
08-09 10:10:20.166: I/MediaPlayer(265): Info (1,44)
08-09 10:10:20.396: W/MediaPlayer(265): info/warning (1, 44)
08-09 10:10:20.556: I/MediaPlayer(265): Info (1,44)
08-09 10:10:20.566: W/MediaPlayer(265): info/warning (1, 44)
08-09 10:10:20.566: I/MediaPlayer(265): Info (1,44)
08-09 10:10:20.766: W/MediaPlayer(265): info/warning (1, 44)
08-09 10:10:20.907: I/MediaPlayer(265): Info (1,44)
08-09 10:10:20.907: W/MediaPlayer(265): info/warning (1, 44)
08-09 10:10:20.916: I/MediaPlayer(265): Info (1,44)
08-09 10:10:21.116: W/MediaPlayer(265): info/warning (1, 44)
08-09 10:10:21.236: I/MediaPlayer(265): Info (1,44)
08-09 10:10:21.246: W/MediaPlayer(265): info/warning (1, 44)
08-09 10:10:21.246: I/MediaPlayer(265): Info (1,44)
08-09 10:10:21.406: W/MediaPlayer(265): info/warning (1, 26)
08-09 10:10:21.427: E/MediaPlayer(265): error (1, -17)
08-09 10:10:21.447: D/MediaPlayer(265): create failed:
08-09 10:10:21.447: D/MediaPlayer(265): java.io.IOException: Prepare failed.: status=0x1
08-09 10:10:21.447: D/MediaPlayer(265):     at android.media.MediaPlayer.prepare(Native  Method)
08-09 10:10:21.447: D/MediaPlayer(265):     at     android.media.MediaPlayer.create(MediaPlayer.java:644)
08-09 10:10:21.447: D/MediaPlayer(265):     at  com.moer.playsound.MainActivity$1.onClick(MainActivity.java:40)
08-09 10:10:21.447: D/MediaPlayer(265):     at  android.view.View.performClick(View.java:2364)
08-09 10:10:21.447: D/MediaPlayer(265):     at android.view.View.onTouchEvent(View.java:4179)
08-09 10:10:21.447: D/MediaPlayer(265):     at android.widget.TextView.onTouchEvent(TextView.java:6541)
08-09 10:10:21.447: D/MediaPlayer(265):     at android.view.View.dispatchTouchEvent(View.java:3709)
08-09 10:10:21.447: D/MediaPlayer(265):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
08-09 10:10:21.447: D/MediaPlayer(265):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
08-09 10:10:21.447: D/MediaPlayer(265):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
08-09 10:10:21.447: D/MediaPlayer(265):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
08-09 10:10:21.447: D/MediaPlayer(265):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.j ava:1659)
08-09 10:10:21.447: D/MediaPlayer(265):     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
08-09 10:10:21.447: D/MediaPlayer(265):     at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
08-09 10:10:21.447: D/MediaPlayer(265):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1 643)
08-09 10:10:21.447: D/MediaPlayer(265):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
08-09 10:10:21.447: D/MediaPlayer(265):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-09 10:10:21.447: D/MediaPlayer(265):     at android.os.Looper.loop(Looper.java:123)
08-09 10:10:21.447: D/MediaPlayer(265):     at android.app.ActivityThread.main(ActivityThread.java:4363)
08-09 10:10:21.447: D/MediaPlayer(265):     at java.lang.reflect.Method.invokeNative(Native Method)
08-09 10:10:21.447: D/MediaPlayer(265):     at java.lang.reflect.Method.invoke(Method.java:521)
08-09 10:10:21.447: D/MediaPlayer(265):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
08-09 10:10:21.447: D/MediaPlayer(265):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
08-09 10:10:21.447: D/MediaPlayer(265):     at dalvik.system.NativeStart.main(Native Method)
08-09 10:10:21.466: D/AndroidRuntime(265): Shutting down VM
08-09 10:10:21.466: W/dalvikvm(265): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
08-09 10:10:21.476: E/AndroidRuntime(265): Uncaught handler: thread main exiting due to uncaught exception
08-09 10:10:21.496: E/AndroidRuntime(265): java.lang.NullPointerException
08-09 10:10:21.496: E/AndroidRuntime(265):  at com.moer.playsound.MainActivity$1.onClick(MainActivity.java:41)
08-09 10:10:21.496: E/AndroidRuntime(265):  at android.view.View.performClick(View.java:2364)
08-09 10:10:21.496: E/AndroidRuntime(265):  at android.view.View.onTouchEvent(View.java:4179)
08-09 10:10:21.496: E/AndroidRuntime(265):  at android.widget.TextView.onTouchEvent(TextView.java:6541)
08-09 10:10:21.496: E/AndroidRuntime(265):  at android.view.View.dispatchTouchEvent(View.java:3709)
08-09 10:10:21.496: E/AndroidRuntime(265):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
08-09 10:10:21.496: E/AndroidRuntime(265):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
08-09 10:10:21.496: E/AndroidRuntime(265):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
08-09 10:10:21.496: E/AndroidRuntime(265):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
08-09 10:10:21.496: E/AndroidRuntime(265):  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
08-09 10:10:21.496: E/AndroidRuntime(265):  at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
08-09 10:10:21.496: E/AndroidRuntime(265):  at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
08-09 10:10:21.496: E/AndroidRuntime(265):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
08-09 10:10:21.496: E/AndroidRuntime(265):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
08-09 10:10:21.496: E/AndroidRuntime(265):  at android.os.Handler.dispatchMessage(Handler.java:99)
08-09 10:10:21.496: E/AndroidRuntime(265):  at android.os.Looper.loop(Looper.java:123)
08-09 10:10:21.496: E/AndroidRuntime(265):  at android.app.ActivityThread.main(ActivityThread.java:4363)
08-09 10:10:21.496: E/AndroidRuntime(265):  at java.lang.reflect.Method.invokeNative(Native Method)
08-09 10:10:21.496: E/AndroidRuntime(265):  at java.lang.reflect.Method.invoke(Method.java:521)
08-09 10:10:21.496: E/AndroidRuntime(265):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
08-09 10:10:21.496: E/AndroidRuntime(265):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
08-09 10:10:21.496: E/AndroidRuntime(265):  at dalvik.system.NativeStart.main(Native Method)
08-09 10:10:21.516: I/dalvikvm(265): threadid=7: reacting to signal 3
08-09 10:10:21.726: I/dalvikvm(265): Wrote stack trace to '/data/anr/traces.txt'
08-09 10:10:34.156: I/Process(265): Sending signal. PID: 265 SIG: 9
这是代码:

package com.moer.playsound;


import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Button;
import java.util.Random;
import android.view.KeyEvent;
import android.view.View.OnClickListener;

public class MainActivity extends Activity {


private final int NUM_SOUND_FILES = 8;

private int mfile[] = new int[NUM_SOUND_FILES];
private Random rnd = new Random();
private MediaPlayer mp;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);        

mfile[0] = R.raw.sound1;  
mfile[1] = R.raw.sound2;  
mfile[2] = R.raw.sound3;
mfile[3] = R.raw.sound4;
mfile[4] = R.raw.sound5;
mfile[5] = R.raw.sound6;
mfile[6] = R.raw.sound7;
mfile[7] = R.raw.sound8;


Button button1 = (Button) findViewById(R.id.button1);
  button1.setOnClickListener(new OnClickListener() {
  public void onClick(View v) {
     mp = MediaPlayer.create(MainActivity.this, mfile[rnd.nextInt(NUM_SOUND_FILES)]);
     mp.seekTo(0);
     mp.start(); 
   }});

} 
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        finish();
 return true;
  }
return false;
}
}   
我尝试过使用wav格式,减少使用的文件量,但它没有任何作用。我是新手,所以任何帮助都将不胜感激

谢谢

嗨,试试这个

import java.util.Random;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {

    private static final int[] SOUNDS = new int[] { R.raw.sound1, R.raw.sound2,
            R.raw.sound3, R.raw.sound4, R.raw.sound5, R.raw.sound6,
            R.raw.sound7, R.raw.sound8 };

    // private int mfile[] = new int[NUM_SOUND_FILES];
    private Random rnd = new Random();
    private MediaPlayer mp;
    int flag = 0;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button button1 = (Button) findViewById(R.id.button1);
        button1.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {

                if (flag == 0) {
                    Log.v("Flag Values is", flag + "");
                    audioPlaying();
                } else {
                    Toast.makeText(getApplicationContext(),
                            "player is currently Playing", Toast.LENGTH_LONG)
                            .show();
                    mp.stop();
                    mp.release();
                    flag = 0;
                    audioPlaying();
                }

            }
        });
        // Button button2 = (Button) findViewById(R.id.button2);
        // button2.setOnClickListener(new OnClickListener() {
        // public void onClick(View v) {
        //
        // mp.stop();
        // mp.release();
        //
        // }
        // });
    }

    protected void audioPlaying() {
        // TODO Auto-generated method stub
        int sndToPlay = rnd.nextInt(SOUNDS.length);
        mp = MediaPlayer.create(MainActivity.this, SOUNDS[sndToPlay]);
        mp.seekTo(0);
        mp.start();
        flag++;
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {

            finish();
            return true;
        }
        return false;
    }

    @Override
    protected void onStop() {
        super.onStop();
        // deallocate all memory
        if (mp != null) {
            if (mp.isPlaying()) {
                mp.stop();
            }
            mp.release();
            mp = null;
        }
    }
}

是在最后一个声音结束之前开始下一个声音吗?嗨。每个声音文件大约10kb。它们不会持续超过2秒。我试着以较慢的速度点击,但它仍然崩溃。正如我在下面向阿尔罗指出的,似乎我点击得越快,它崩溃得越快。@user1585966:注意我的代码,这里我使用了两个按钮,一个用于开始付款,另一个用于停止播放器。根据您的需要更改此代码。谢谢。快速服务在这里,我可能会说:)我试图改变代码,但我仍然得到相同的结果。每个声音文件大约为10kb。我不确定,但似乎我点击按钮的速度越快,它崩溃的速度就越快。@user1585966:我尝试使用高达9MB的音频文件。它没有坠毁。我可以知道你用的是哪种格式吗。在我的代码中,我使用了user.mp3,我也在使用mp3。我尝试使用wav格式,但结果相同。这适用于模拟器和我的手机。