Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不幸的是,MyApp已经停止。我怎样才能解决这个问题?_Java_Android_Debugging_Kotlin - Fatal编程技术网

Java 不幸的是,MyApp已经停止。我怎样才能解决这个问题?

Java 不幸的是,MyApp已经停止。我怎样才能解决这个问题?,java,android,debugging,kotlin,Java,Android,Debugging,Kotlin,我正在开发一个应用程序,每次运行它时,我都会收到以下信息: 不幸的是,MyApp已经停止 我能做些什么来解决这个问题 关于这个问题-显然是受到启发,有很多问题表明他们的应用程序已经崩溃,没有任何进一步的细节。此问题旨在指导Android新手程序员如何尝试自己解决问题,或提出正确的问题。此答案描述了检索堆栈跟踪的过程。已经有堆栈跟踪了吗?读取“”中的堆栈跟踪 问题 您的应用程序退出,因为引发了未捕获的运行时异常。 其中最常见的是 如何解决? 每次Android应用程序崩溃(或任何Java应用程序

我正在开发一个应用程序,每次运行它时,我都会收到以下信息:

不幸的是,MyApp已经停止

我能做些什么来解决这个问题


关于这个问题-显然是受到启发,有很多问题表明他们的应用程序已经崩溃,没有任何进一步的细节。此问题旨在指导Android新手程序员如何尝试自己解决问题,或提出正确的问题。

此答案描述了检索堆栈跟踪的过程。已经有堆栈跟踪了吗?读取“”中的堆栈跟踪

问题 您的应用程序退出,因为引发了未捕获的运行时异常。
其中最常见的是

如何解决? 每次Android应用程序崩溃(或任何Java应用程序崩溃)时,都会将
堆栈跟踪写入控制台(在本例中为logcat)。此堆栈跟踪包含解决问题的重要信息

安卓工作室

在窗口的底部栏中,单击
Logcat
按钮。或者,您可以按alt+6。确保在
Devices
面板中选择了仿真器或设备。接下来,尝试查找堆栈跟踪,它显示为红色。可能有很多东西登录到logcat,所以您可能需要滚动一点。查找堆栈跟踪的一个简单方法是清除logcat(使用右侧的回收站),然后让应用程序再次崩溃

我找到了堆栈跟踪,现在怎么办? 耶!你的问题已经解决了一半。
通过分析堆栈跟踪,您只需找出到底是什么导致了应用程序崩溃

读取“”中的堆栈跟踪

我还是不能解决我的问题! 如果您已经找到了您的
异常
以及发生异常的行,但仍然无法确定如何修复它,请毫不犹豫地询问有关StackOverflow的问题


尽量简明扼要:发布堆栈跟踪和相关代码(例如,在引发
异常的行之前的几行)。

首先,检查应用程序崩溃的点(
不幸的是,MyApp已停止。
)。为此,您可以使用
Log.e(“标记”、“消息”),使用此行可以在logcat中查看应用程序日志


在那之后,你会发现你的应用程序停止了哪一点,这很容易在你身边解决

您也可以自行获取此错误消息,而无需任何堆栈跟踪或任何进一步的错误消息

在这种情况下,您需要确保正确配置了Android清单(包括库中发生的任何清单合并以及库中可能发生的任何活动),并特别注意应用程序中显示在清单文件中的第一个活动。

您可以使用获取
Logcat文件来分析问题

adb logcat > logcat.txt

打开
logcat.txt
文件并搜索应用程序名称。应该有关于失败原因、行号、类名等的信息。

只需检查日志cat中的错误即可

在eclipse中,您可以从中获得log cat选项:

窗口->显示视图->其他->安卓->日志猫

日志cat包含错误

另外,您还可以通过在调试模式下执行应用程序来检查错误。 首先设置断点,然后执行以下操作:

右键单击project->debug as->Android应用程序


检查您的
Logcat
消息并查看您的
Manifest
文件。应该缺少一些东西,如定义
活动、
用户权限等。

您必须检查
堆栈跟踪

怎么做?

在IDE上检查windows窗体LOGCAT

如果看不到logcat窗口,请转到此路径并将其打开

window->show view->others->Android->Logcat
如果您正在使用Google Api,请转到此路径


adb logcat>logcat.txt

您可以使用以下任何工具:

  • 亚洲开发银行日志

  • adb logcat>logs.txt(您可以使用编辑器打开和搜索错误。)

  • eclipse logcat(如果在eclipse中不可见,请转到Windows->Show View->Others->Android->logcat)

  • Android调试监视器或Android设备监视器(键入commandMonitor或通过UI打开)

  • 安卓工作室

  • 我建议使用安卓调试监视器,这很好。因为当有太多日志时,eclipse会挂起,并且通过adb logcat筛选器和所有操作都很困难。

    使用logcat并尝试查找导致应用程序崩溃的原因

    要查看Logcat,请使用Android Studio,然后按ALT+6 或

    如果使用Eclipse 窗口->打开透视->其他-LogCat


    转到LogCat,从下拉菜单中选择错误。这将包含帮助您调试所需的所有信息。如果没有帮助,请将日志猫作为问题的编辑发布,有人会帮你解决问题。

    让我分享一下当你遇到强制关闭(应用程序停止工作)时的基本日志猫分析

    文档

    Android收集/分析日志的基本工具是logcat

    Android的页面是关于logcat的吗

    如果你使用android Studio,你也可以检查这个

    捕获

    基本上,您可以使用以下命令手动捕获logcat(或者只需检查AndroidStudio中的AndroidMonitor窗口):

    有很多参数可以添加到命令中,帮助您筛选和显示所需的消息。。。这是私人的。。。我总是使用下面的命令来获取消息时间戳:

    adb logcat -v time
    
    您可以将输出重定向到文件,并在文本编辑器中对其进行分析

    分析

    如果你的应用程序崩溃,你会得到如下结果:

    07-09 08:29:13.474 21144-21144/com.example.khan.abc D/AndroidRuntime: Shutting down VM
    07-09 08:29:13.475 21144-21144/com.example.khan.abc E/AndroidRuntime: FATAL EXCEPTION: main
        Process: com.example.khan.abc, PID: 21144
        java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.app.FragmentActivity.onBackPressed()' on a null object reference
         at com.example.khan.abc.AudioFragment$1.onClick(AudioFragment.java:125)
         at android.view.View.performClick(View.java:4848)
         at android.view.View$PerformClick.run(View.java:20262)
         at android.os.Handler.handleCallback(Handler.java:815)
         at android.os.Handler.dispatchMessage(Handler.java:104)
         at android.os.Looper.loop(Looper.java:194)
         at android.app.ActivityThread.main(ActivityThread.java:5631)
         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:959)
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
    07-09 08:29:15.195 21144-21144/com.example.khan.abc I/Process: Sending signal. PID: 21144 SIG: 9
    
    日志的这一部分向您显示了许多信息:

    • 07-09 08:29:13.474 21144-21144/com.example.khan.abc D/AndroidRuntime: Shutting down VM
      07-09 08:29:13.475 21144-21144/com.example.khan.abc E/AndroidRuntime: FATAL EXCEPTION: main
          Process: com.example.khan.abc, PID: 21144
          java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.app.FragmentActivity.onBackPressed()' on a null object reference
           at com.example.khan.abc.AudioFragment$1.onClick(AudioFragment.java:125)
           at android.view.View.performClick(View.java:4848)
           at android.view.View$PerformClick.run(View.java:20262)
           at android.os.Handler.handleCallback(Handler.java:815)
           at android.os.Handler.dispatchMessage(Handler.java:104)
           at android.os.Looper.loop(Looper.java:194)
           at android.app.ActivityThread.main(ActivityThread.java:5631)
           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:959)
           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
      07-09 08:29:15.195 21144-21144/com.example.khan.abc I/Process: Sending signal. PID: 21144 SIG: 9
      
      at android.view.View.performClick(View.java:4848)
      
      at android.view.View$PerformClick.run(View.java:20262)
      
      at android.os.Handler.handleCallback(Handler.java:815)
      
      throw new RuntimeException();
      
      java.lang.NullPointerException
      
      mTextView.setText(myString);
      
      Log.d("AppDebug","mTextView is null: " + String.valueOf(mTextView == null);
      Log.d("AppDebug","myString is null: " + String.valueOf(myString== null);
      
      Log.
        d means Debug
        e means error
        w means warning
        v means verbose
        i means information
        wtf means "What a terrible failure". This is similar to Log.e
      
      yourPackageNameAndApp: mTextView is null: true
      yourPackageNameAndApp: myString is null: false
      
      mTextView = (TextView) findViewById(R.id.textview_id_in_xml);
      
        public void showToast(String error, Context applicationContext){
              LayoutInflater inflater = getLayoutInflater();
              View view = inflater.inflate(R.layout.custom_toast, (ViewGroup)      
              findViewById(R.id.toast_root));
              TextView text = (TextView) findViewById(R.id.toast_error);
              text.setText(error);
              Toast toast = new Toast(applicationContext);
              toast.setGravity(Gravity.TOP | Gravity.FILL_HORIZONTAL, 0, 0);
              toast.setDuration(Toast.LENGTH_SHORT);
              toast.setView(view);
              toast.show();
      }
      
      gradlew build > log.txt 2>details.txt
      
      Texture texture = new Texture("myImage.png");