Ich habe gearbeitet, um dieses Problem für die letzten drei Tage zu lösen und kann es nicht funktionieren. Dies sind die Schritte meiner App:Android Mediaplayer mit Uri verursacht App Absturz
- öffnen Dateibrowser auswählen und Audiodatei
- Tondatei
- Ausgewählte Audiodatei ausgewählt wird, wird zu der Datenbank
- aus einer Liste von Elementen der addierte Datei ist ausgewählt
- eine Wiedergabe-Taste gedrückt wird, um die Sound-Datei
- an diesem Punkt die Sounddatei wird abgespielt, aber wenn ich die App schließe dann öffne sie erneut und versuche, die gleiche Sound-Datei die App stürzt mit zu spielen das folgende ing Fehler:
FATAL AUSNAHME: Haupt
Process: com.arcitech.developer.ultimatesoundboard, PID: 22967
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.MediaPlayer.start()' on a null object reference
at com.arcitech.developer.ultimatesoundboard.activities.ItemDetailFragment$4.onClick(ItemDetailFragment.java:153)
at android.view.View.performClick(View.java:5156)
at android.view.View$PerformClick.run(View.java:20755)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5835)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
die Filepath (uri) ich in die Datenbank speichere ist: Inhalt: //com.android.providers.media.documents/document/ Audio-% 3A15790
und der Code I befindet sich im onCreateView eines Fragments bin mit:
MediaPlayer m;
playSound.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (m != null) {
m.stop();
m.release();
m = null;
}
m = MediaPlayer.create(getActivity(), Uri.parse(mItem.filePath));
m.start();
m.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer m) {
countdownTimerHandler.removeCallbacks(countdownTimerRunnable);
}
});
}
});
Ihr MediaPlayer ist nicht initialisiert. Schau dir das an: http://stackoverflow.com/questions/7882851/mediaplayer-create-always-returns-null –
Danke, aber das ist nicht die Lösung für mein Problem, der Link, den du mir geschickt hast, war auf eine beschädigte Datei zurückzuführen Die Datei, die ich verwende, ist nicht beschädigt. Mein Media Player ist initialisiert. in der Tat ist mein Code nicht anders als der Link, den Sie mir geschickt haben! Aber danke für deinen Rat und komm so schnell zurück. – user2029541