【问题标题】:Android Application closing when debugging code block finishes调试代码块完成时关闭Android应用程序
【发布时间】:2016-10-11 00:11:00
【问题描述】:

我刚刚为现有的 android 应用设置了开发环境。一切似乎都设置正确,我可以构建应用程序、添加断点和调试应用程序。但我注意到一些奇怪的行为,我似乎找不到与该问题相关的任何内容。

  1. 当我启动模拟器或在设备上运行应用程序时,我可以浏览应用程序并且一切正常
  2. 当我运行调试器并添加断点时,断点被正确命中,我可以单步执行代码。
  3. 当我使用 F7(step-into) 或 F8(step-over) 退出具有初始断点的最后一个代码块时,应用程序关闭并且调试器停止。 android monitor > logcat 中没有错误。
  4. 如果我执行相同的步骤,而是使用 F9 来恢复程序,应用程序不会关闭并且一切正常运行。

这似乎与活动线程完成有关,并且可能与 Android Studio 调试选项有关?不过我不太确定,我还是 android 开发的新手。

为什么调试器会这样停止?有没有办法确保你运行到下一个断点?

编辑

我也可以通过一个新的 android 项目来重现这一点,我在 OnCreate 方法中添加一个断点并像这样单步执行结束

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);    <------- Breakpoint added here
    setContentView(R.layout.activity_main);
    
    ......
    
    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);
}    <------- Application terminates after this line

【问题讨论】:

  • 在我的环境中,这个问题发生在 Android 6.0.1 上,而不是 Android 4.4、5.1.1 和 N(预览版)。我不知道为什么。
  • 您是否通过任何更改来停止调试模式?因为如果你是应用程序关闭而不显示任何内容,因为你会说你想关闭调试模式
  • 请尝试阅读错误信息并在此处发布。您的 Activity 是否在 AndroidManifest 中声明?
  • 这是一个令人讨厌的错误。仍然发生在 A.S. 2.2.2 和 API 25。有时退出工作,所以它似乎仅限于某些条件。但我还不能识别它们。

标签: android android-studio


【解决方案1】:

这似乎是一个错误See issue tracker link

在方法结束时使用 continue 而不是 step over 应该可以解决上述问题。尽管您可能需要添加额外的日志记录并将断点放置在您希望代码在该方法之后执行的任何位置,以便更轻松地调试以后的方法。

【讨论】:

    【解决方案2】:

    当你到达函数的末尾时不要使用step-over,只需使用“resume program”,然后它会转到下一个断点。

    【讨论】:

    • 问题已在第 4 项中指出,使用 F9(恢复程序)允许程序在调试模式下继续。问题是允许用户继续单步执行,而无需设置额外的断点并使用恢复程序。
    【解决方案3】:

    您可以尝试一个更好的 android 设备,它可以承受调试负载而不会导致应用程序崩溃。它发生在我身上,现在我正在使用最适合开发目的的 Nexus 5x。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-23
      • 1970-01-01
      • 1970-01-01
      • 2014-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多