J'ai apporté une application Soundboard et ça marche mais quand j'appuie sur le bouton Accueil sur le téléphone et
Je clique ici pour apporter une application de retour, lorsque j'appuyez sur un bouton pour le son, il cesse de fonctionner (accidents) mon erreur logcat = strong> p> Process: soundboard.test, PID: 5429
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.MediaPlayer.start()' on a null object reference
at soundboard.test.MainActivity$6.onClick(MainActivity.java:96)
at android.view.View.performClick(View.java:4780)
at android.view.View$PerformClick.run(View.java:19866)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5293)
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:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
4 Réponses :
Avez-vous donné les autorisations requises? Vérifiez-le et s'il vous plaît ajouter un autre code au stockage, etc. ou si le problème est le problème de vie d'activité, ajoutez simplement ce code
@Override public void onRestart() { super.onRestart(); recreate(); finish(); overridePendingTransition(0, 0); startActivity(getIntent()); overridePendingTransition(0, 0); }
C'est la principale et c'est tous les codes que j'ai plus de codes, mais ils sont les mêmes mp2, mp3, je suis débutant, je ne suis donc pas sûr de quel type d'autorisations dois-je ajouter.
Vérifiez ce code et essayez de comprendre les choses comme comment MediaPlayer fonctionne comment les autorisations sont données etc. Simplifiedcoding .NET / Audio-Enregistrement-Android-Exemple
Le code a fonctionné maintenant, il ne s'effondre plus. Merci.
Le lecteur multimédia est défini sur NULL lorsque l'application va à l'arrière-plan, mais pas recréé lorsque l'activité est reportée au premier plan ( Oncreate () code> n'est pas appelé).
Vous devez gérer l'initialisation et la destruction d'objets dans des rappels appariés du cycle de vie, comme p>
Oncreate () code> et
OnDestroy () Code> P> LI>
OnStart () Code> et
OnStop () Code> P> LI>
Onresume () code> et
Onpaause () Code> P> LI>
ul>
Y a-t-il une chance que vous puissiez m'écrire une seule ligne du code si vous avez du temps depuis que je ne sais pas comment mettre en œuvre cela dans mon code, je serais vraiment reconnaissant.
Par exemple, vous pouvez déplacer le mp = ... code> ligne sur
Onstart () Code> au lieu de
Oncreate () Code>
Vous devez comprendre Activité Lifecycle Code> et les autorisations nécessaires aux fichiers audio.
Si j'étais vous, j'utiliserais ci-dessous des autorisations. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
Ajouter la méthode onResume comme ci-dessous
@Override protected void onResume() { super.onResume(); if (mp != null) { //if want to start again when open app mp.start(); //play when click button // iaminevitable.setOnClickListener(new View.OnClickListener() { // @Override // public void onClick(View view) { // mp.start(); // } // }); } }