初心者の開発者として小さな質問があります。過去2週間にかなり多くダウンロードされ、13,000人のアクティブユーザーがいるアプリを作成しました。私はこれをいくつかの(Samsung)電話で、そしてもちろんエミュレーターでテストしました。アプリはシンプルなので、エラーが発生することは予想していませんでした。
しかし、今日、Play Developer Consoleを調べたところ、2つのエラーレポートが見つかりました。これは私が心配すべきことですか、それともこのエラーはランダムに生成される可能性がありますか?たとえば、悪いカスタムROMがクラッシュを引き起こす可能性があることを私は知っています、私はこれを自分で経験しました。
これを作成したクラスを投稿します。ボタンをクリックすると、選択したサウンドが再生されます。ボタンがクリックされたときにnullPointerExceptionでクラッシュするものの1つ、mp.stop()が呼び出されたときに生成されたillegalStateExceptionでした。私には、これがエラーを生成する可能性はないように思われますが、もちろん私は間違っている可能性があります。これはコードです:
public class SoundActivity extends Activity implements OnClickListener,
OnCheckedChangeListener {
Button btn;
MediaPlayer mp;
RadioGroup slct;
RadioButton radio0, radio1, radio2, radio3, radio4;
int t = 1;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.btclayout);
initialize();
btn.setOnClickListener(this);
slct.setOnCheckedChangeListener(this);
mp = MediaPlayer.create(this, R.raw.sound1);
}
public void initialize() {
btn = (Button) findViewById(R.id.button1);
slct = (RadioGroup) findViewById(R.id.radioGroup1);
radio0 = (RadioButton) findViewById(R.id.radio0);
radio1 = (RadioButton) findViewById(R.id.radio1);
radio2 = (RadioButton) findViewById(R.id.radio2);
radio3 = (RadioButton) findViewById(R.id.radio3);
radio4 = (RadioButton) findViewById(R.id.radio4);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
mp.stop();
mp.reset();
switch (t) {
case 1:
mp = MediaPlayer.create(this, R.raw.sound1);
break;
case 2:
mp = MediaPlayer.create(this, R.raw.sound2);
break;
case 3:
mp = MediaPlayer.create(this, R.raw.sound3);
break;
}
mp.start();
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
mp.release();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
mp = MediaPlayer.create(this, R.raw.sound1);
}
@Override
public void onCheckedChanged(RadioGroup arg0, int arg1) {
// TODO Auto-generated method stub
switch (arg1) {
case R.id.radio0:
t = 1;
break;
case R.id.radio1:
t = 2;
break;
case R.id.radio2:
t = 3;
break;
case R.id.radio3:
t = 4;
break;
case R.id.radio4:
t = 5;
break;
}
}
}
編集:これはPlayConsoleからのスタックトレースです。
java.lang.IllegalStateException at android.media.MediaPlayer._stop(Native Method)at android.media.MediaPlayer.stop(MediaPlayer.java:1033)at com.ddroid.DisMyApp.SoundActivity.onClick(SoundActivity.java:57)at android.view.View.performClick(View.java:3549)at android.view.View $ PerformClick.run(View.java:14400)at android.os.Handler.handleCallback(Handler.java:605)at android.os .Handler.dispatchMessage(Handler.java:92)at android.os.Looper.loop(Looper.java:154)at android.app.ActivityThread.main(ActivityThread.java:4944)atjava.lang.reflect.Method。 combNative(Native Method)at java.lang.reflect.Method.invoke(Method.java:511)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:784)atcom.android.internal。 os.ZygoteInit.main(ZygoteInit.java:551)at dalvik.system.NativeStart.main(ネイティブメソッド)
2つ目:
java.lang.NullPointerException at com.ddroid.DisMyApp.SoundActivity.onClick(SoundActivity.java:76)at android.view.View.performClick(View.java:2538)at android.view.View $ PerformClick.run(View。 java:9152)at android.os.Handler.handleCallback(Handler.java:587)at android.os.Handler.dispatchMessage(Handler.java:92)at android.os.Looper.loop(Looper.java:130)at android.app.ActivityThread.main(ActivityThread.java:3687)at java.lang.reflect.Method.invokeNative(Native Method)at java.lang.reflect.Method.invoke(Method.java:507)atcom.android。 internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:867)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)at dalvik.system.NativeStart.main(ネイティブメソッド)