私のアプリはmp3を再生しますが、ホームボタンを押すか、横から縦に切り替えるか、縦から横に切り替えると、アプリが強制的に閉じます。Froyo を使用して実際のデバイスでアプリを実行しています。
私の質問は次のとおりです。
- なぜこれが起こるのですか?
- 強制終了の理由をバックトレースするにはどうすればよいですか?
私はAndroidとJavaの両方が初めてです。
import android.media.AudioManager;
import android.media.AudioTrack;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
public class AudioPlayManager extends Activity
implements OnCompletionListener
{
private File fileName;
private volatile boolean playing;
protected MediaPlayer mp1;
public AudioPlayManager() {
super();
setPlaying(false);
}
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mp1 = MediaPlayer.create(this, R.raw.telek_jobban_lezart);
mp1.setOnCompletionListener(this);
mp1.start();
}
public void setFileName(File fileName) {
this.fileName = fileName;
}
public File getFileName() {
return fileName;
}
public void setPlaying(boolean playing) {
this.playing = playing;
}
public boolean isPlaying() {
return playing;
}
protected void onStop() {
try{
mp1.stop();
mp1.release();
}
catch(Exception e){
//e.printStackTrace();
}
}
@Override
public void onCompletion(MediaPlayer arg0) {
// TODO Auto-generated method stub
mp1.start();
}
}
私のマニフェスト:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.audioplaya2"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="8" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.audioplaya2.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
更新: 解決策
Android 2.2 でアプリを実行しましたが、Android 2.2 用にビルドされていないようです。
問題はデバイスに存在しましたが、エミュレーターには存在しませんでした。エミュレータは Android 4.2 を実行し、デバイスは Android 2.2 を実行します。プロジェクトを作成したとき、デフォルトの SDK 設定のままにしました。
最低限必要な SDK: API 8
対象SDK: API 17
コンパイル: API 17
テーマ: 暗いアクション バーを持つホロ ライト。
Holo テーマには API 11 が必要です。すべての API バージョンを 8 に設定するまで、それに関する警告は表示されませんでした...
これは私にとって驚きでした。最低限必要な SDK に関する情報には、次のように記載されています。アプリケーションがサポートする Android の最も低いバージョンを選択してください。明らかに、これは最低限必要な SDK の実際の定義ではありません...