调试代码块完成后Android应用程序关闭

Rya*_*ham 38 android android-studio

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

  1. 当我启动模拟器或在设备上运行应用程序时,我可以浏览应用程序,一切都按预期工作
  2. 当我运行调试器和广告断点时,断点被击中,我可以单步执行代码.
  3. 当我使用F7(步入)或F8(步进)退出具有初始断点的最后一个代码块时,应用程序关闭并且调试器停止.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
Run Code Online (Sandbox Code Playgroud)

Kai*_*Kai 9

看起来这是一个错误请参阅问题跟踪链接

在方法结束时使用continue而不是步骤应该解决上面提到的问题.虽然您可能需要添加额外的日志记录并将断点放在您希望代码在该方法之后的任何位置,以便以后的方法调试更容易.


che*_*ish 7

当你到达功能结束时不要使用步骤,只需使用"恢复程序",然后它将转到下一个断点.

  • 问题已在第4项中指出,使用F9(恢复程序)允许程序继续处于调试模式.问题是允许用户不必设置额外的断点并使用恢复程序来继续操作. (3认同)