如何在应用程序被杀死时调试应用程序

How to debug app when it's killed

我的应用程序在某些活动上存在错误:当它重新启动时(当它被杀死然后再次使用多任务程序打开时),它会崩溃。我认为这与我的单身人士有关,但我不确定。我想查明问题所在,但我无法调试,因为当我终止应用程序时调试器停止(我正在使用 adb shell am kill <package-name>)。

有谁知道如何调试这个问题? (或者给我一个提示,我的问题可能是什么)

如果您使用单例 class 预加载一些数据,当您终止应用程序时实例将被销毁,因此您将不得不重新加载单例所需的数据。

您还可以添加 Raygun,它将捕获所有异常并将其发送到服务器,您可以在其中查看异常详细信息。

你可以从nuget获取:Mindscape.Raygun4Net 5.3.0

我会使用 DDMS(Dalvik 调试监视器服务器 (DDMS) 来捕获堆栈跟踪等。在您终止并重新启动我们的应用程序后。

(仅供参考:它已经与 Android 工具集的其余部分一起安装)

虽然它不允许您通过 VS/XS 调试您的应用程序,但它可以帮助您确定导致问题的应用程序区域。从那里我会在故障区域周围添加日志记录(即老式 printf 样式调试)

http://developer.android.com/tools/debugging/ddms.html

从 Visual Studio 开始:

来自 Xamarin Studio:

您可以将以下代码添加到主程序的 onCreate() 方法中 activity:

android.os.Debug.waitForDebugger();

这将暂停您的应用,直到调试器附加到该进程。

然后:

  • 运行 你的应用程序
  • 将您的应用置于后台(例如,使用主页按钮)
  • 终止进程或使用 MemoryPump 之类的应用程序来填充 RAM 并让您的应用程序被 Android
  • 终止
  • 使用多任务面板切换回您的应用(应用将启动并等待调试器)
  • 将您的 android studio 调试器附加到您的应用程序(Android Studio 工具栏中 'run app' 图标和 'stop application' 图标之间某处的图标)
  • 调试您的应用程序