【问题标题】:How can i stop app from restarting on crash and make crashes visible?如何阻止应用程序在崩溃时重新启动并使崩溃可见?
【发布时间】:2019-07-19 09:59:37
【问题描述】:

我正在开发一个应用程序并使用华为手机进行测试,每当发生崩溃时,应用程序都会重新启动并且日志会消失。开发者选项中是否有任何设置或其他可以让崩溃对话框出现并显示崩溃日志的设置。

【问题讨论】:

    标签: android android-studio debugging


    【解决方案1】:

    我最近了解到这一点,希望它可以帮助其他人。

    像往常一样进行调试,但是一旦发生崩溃和重启,就会打开 Logcat 选项卡。 在顶部的 Logcat 窗口中,您可以选择之前的进程。 它应该是这样的:

    com.myapp.app(1234)[死亡]

    这会给你重启前的日志。

    【讨论】:

    • 我可以发誓曾经有一个开发人员设置不重新启动应用程序但现在找不到它。这可以代替!
    【解决方案2】:

    您可以运行应用调试器模式并在发生崩溃的 Activity 中保留一个断点,然后使用 F8 转到下一行直到遇到崩溃。

    【讨论】:

    • 基本上它会重新启动应用程序并且不会显示发生崩溃的行
    • 然后您可以尝试在 调试器模式 中从上一个活动导航并使用 F8 解析这些行,直到遇到崩溃。如果还是遇到重启应用,尝试在模拟器中调试应用。
    【解决方案3】:

    你可以使用这个Uncaught Exception Handler

    设置

    在您项目的 build.gradle 文件中:

    allprojects {
       repositories {
           ...
           maven { url 'https://jitpack.io' }
       }
    }
    

    在您的应用程序或模块的 build.gradle 文件中:

    dependencies {
        implementation 'com.github.jampez77:UCE-Handler:uce_handler:1.4.3'
    }
    

    在您的应用程序类中:

    • 使用构建器模式初始化库。

      public class MyApplication extends Application {
         @Override 
         public void onCreate() { 
            ...
            // Initialize UCE_Handler Library
            new UCEHandler.Builder(this).build();
         } 
      }
      

    【讨论】:

    • 这是一种解决方案,但我想知道为什么应用程序在没有崩溃对话框的情况下继续重启,并且当它重新启动时它会删除包含错误的先前日志
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多