gpt4 book ai didi

java - 从另一个应用程序切换回来后如何阻止我的应用程序崩溃?

转载 作者:太空狗 更新时间:2023-10-29 14:35:22 24 4
gpt4 key购买 nike

当我运行我的应用程序并按下主页按钮然后返回到我的应用程序时,我收到 RunTimeException 和 IllegalStateException 错误。

我制作了一个简单的带有声音的 Android Alphabet 游戏,在游戏结束时,会显示时间量和不正确的次数,并使用 OK 按钮将用户返回到主屏幕。但是,当我按下主页按钮然后返回我的应用程序玩游戏时,在游戏结束时用户单击确定后,我在 Logcat 中收到 RunTimeException 和 IllegalStateException 错误并且游戏返回(假设它不是重新启动我的应用程序)到游戏的主页。我在这里查看了几篇文章(例如 here )并尝试了这些解决方案,但仍然出现以下错误。我也是新手,不知道这些解决方案与我的代码有何关系。非常感谢任何帮助。

/

/ Display the game over results dialog box
public void showGameOverDialog(){
ViewGroup viewGroup = findViewById(android.R.id.content);

View dialogView = LayoutInflater.from(this).inflate(R.layout.game_over_dialog, viewGroup, false);

dialog = new AlertDialog.Builder(this);

dialog.setView(dialogView);
TextView mTextView_Mistakes = dialogView.findViewById(R.id.textView_Mistakes);
String temp = getResources().getString(R.string.mistakes) + incorrectCount;
mTextView_Mistakes.setText(temp);

TextView mTextView_timeUsed = dialogView.findViewById(R.id.textView_timeUsedText);
String temp2 = getResources().getString(R.string.time_used) + mTimeUsed;
mTextView_timeUsed.setText(temp2);

final AlertDialog alertDialog = dialog.create();
final Intent intent = new Intent(this, MainActivity.class);
final Button btnReturnToHome = dialogView.findViewById(R.id.button_return_to_home);
btnReturnToHome.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mBackground.release();
mCorrect.release();
mWrong.release();
startActivity(intent);
finish(); // <-- put this based on a suggestion in a post in this website
}
});
alertDialog.show();
}


@Override
protected void onPause() {
super.onPause();
Log.wtf("OnPause is executed--------------------", "<----------");
mBackground.reset();
mCorrect.reset();
mWrong.reset();

}
@Override
protected void onResume() {
super.onResume();
Log.wtf("OnResume is executed--------------------", "<----------");
if (noResumeFirstTime){ // This makes sure that the following mediaplayers are not started here too.
Log.wtf("Music started on resume--------------------", "<----------");
mBackground.start(); // <-- Line 365 is here ------------------
mCorrect.start();
mWrong.start();
}
noResumeFirstTime = true;
}

该应用预计会顺利返回主 Activity,但我收到以下错误。

2019-07-28 22:11:58.925 12873-12873/com.example.alphabetsforkids E/lphabetsforkid: Unknown bits set in runtime_flags: 0x8000
2019-07-28 22:12:00.003 12873-12897/com.example.alphabetsforkids E/vndksupport: Could not load /vendor/lib/egl/libGLES_emulation.so from sphal namespace: dlopen failed: library "/vendor/lib/egl/libGLES_emulation.so" not found.
2019-07-28 22:12:00.004 12873-12897/com.example.alphabetsforkids E/libEGL: load_driver(/vendor/lib/egl/libGLES_emulation.so): unknown
2019-07-28 22:12:02.358 12873-12896/com.example.alphabetsforkids E/EGL_emulation: tid 12896: eglQueryString(923): error 0x3008 (EGL_BAD_DISPLAY)
2019-07-28 22:13:42.203 13035-13061/com.example.alphabetsforkids E/vndksupport: Could not load /vendor/lib/egl/libGLES_emulation.so from sphal namespace: dlopen failed: library "/vendor/lib/egl/libGLES_emulation.so" not found.
2019-07-28 22:13:42.203 13035-13061/com.example.alphabetsforkids E/libEGL: load_driver(/vendor/lib/egl/libGLES_emulation.so): unknown
2019-07-28 22:13:43.663 13035-13060/com.example.alphabetsforkids E/EGL_emulation: tid 13060: eglQueryString(923): error 0x3008 (EGL_BAD_DISPLAY)
2019-07-28 22:13:47.845 13035-13035/com.example.alphabetsforkids E/OnResume is executed--------------------: <----------
2019-07-28 22:14:00.320 13035-13035/com.example.alphabetsforkids E/OnPause is executed--------------------: <----------
2019-07-28 22:14:05.848 13035-13035/com.example.alphabetsforkids E/OnResume is executed--------------------: <----------
2019-07-28 22:14:05.882 13035-13035/com.example.alphabetsforkids E/Music started on resume--------------------: <----------
2019-07-28 22:14:05.925 13035-13035/com.example.alphabetsforkids E/MediaPlayerNative: start called in state 1, mPlayer(0x0)
2019-07-28 22:14:05.925 13035-13035/com.example.alphabetsforkids E/MediaPlayerNative: error (-38, 0)
2019-07-28 22:14:05.927 13035-13035/com.example.alphabetsforkids E/MediaPlayerNative: start called in state 1, mPlayer(0x0)
2019-07-28 22:14:05.928 13035-13035/com.example.alphabetsforkids E/MediaPlayerNative: error (-38, 0)
2019-07-28 22:14:05.929 13035-13035/com.example.alphabetsforkids E/MediaPlayerNative: start called in state 1, mPlayer(0x0)
2019-07-28 22:14:05.930 13035-13035/com.example.alphabetsforkids E/MediaPlayerNative: error (-38, 0)
2019-07-28 22:14:06.828 13035-13035/com.example.alphabetsforkids E/MediaPlayer: Error (-38,0)
2019-07-28 22:14:06.831 13035-13035/com.example.alphabetsforkids E/MediaPlayer: Error (-38,0)
2019-07-28 22:14:20.377 13035-13035/com.example.alphabetsforkids E/MediaPlayerNative: start called in state 0, mPlayer(0x0)
2019-07-28 22:14:23.544 13035-13035/com.example.alphabetsforkids E/MediaPlayerNative: start called in state 0, mPlayer(0x0)
2019-07-28 22:14:23.553 13035-13035/com.example.alphabetsforkids E/time is greater than best time: ----
2019-07-28 22:14:25.509 13035-13035/com.example.alphabetsforkids E/OnPause is executed--------------------: <----------
2019-07-28 22:14:25.521 13035-13035/com.example.alphabetsforkids E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.alphabetsforkids, PID: 13035
java.lang.RuntimeException: Unable to pause activity {com.example.alphabetsforkids/com.example.alphabetsforkids.AlphabetGame}: java.lang.IllegalStateException
at android.app.ActivityThread.performPauseActivityIfNeeded(ActivityThread.java:4306)
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:4257)
at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:4209)
at android.app.servertransaction.PauseActivityItem.execute(PauseActivityItem.java:46)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1935)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7116)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:925)
Caused by: java.lang.IllegalStateException
at android.media.MediaPlayer._reset(Native Method)
at android.media.MediaPlayer.reset(MediaPlayer.java:2145)
at com.example.alphabetsforkids.AlphabetGame.onPause(AlphabetGame.java:365)
at android.app.Activity.performPause(Activity.java:7874)
at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1500)
at android.app.ActivityThread.performPauseActivityIfNeeded(ActivityThread.java:4296)
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:4257)
at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:4209)
at android.app.servertransaction.PauseActivityItem.execute(PauseActivityItem.java:46)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1935)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7116)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:925)
2019-07-28 22:14:26.182 13144-13168/com.example.alphabetsforkids E/vndksupport: Could not load /vendor/lib/egl/libGLES_emulation.so from sphal namespace: dlopen failed: library "/vendor/lib/egl/libGLES_emulation.so" not found.
2019-07-28 22:14:26.182 13144-13168/com.example.alphabetsforkids E/libEGL: load_driver(/vendor/lib/egl/libGLES_emulation.so): unknown
2019-07-28 22:14:26.919 13144-13167/com.example.alphabetsforkids E/EGL_emulation: tid 13167: eglQueryString(923): error 0x3008 (EGL_BAD_DISPLAY)

最佳答案

您是否在实际设备而非模拟器上试用过您的应用?我注意到您的 GLES 库无法加载,我不是 100% 适合您的情况,但 GLES 通常无法在模拟器上正常工作。

关于java - 从另一个应用程序切换回来后如何阻止我的应用程序崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57246726/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com