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

时间:2016-04-21 08:05:36

标签: android visual-studio xamarin xamarin.android

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

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

3 个答案:

答案 0 :(得分:5)

您可以将以下代码添加到主要活动的onCreate()方法中:

    android.os.Debug.waitForDebugger();

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

然后:

  • 运行您的应用
  • 将您的应用置于后台(例如,使用主页按钮)
  • 终止该过程或使用MemoryPump之类的应用来填充内存并让您的应用被Android杀死
  • 使用多任务平台切换回您的应用程序(应用程序将启动并等待调试程序)
  • 将您的android studio调试器附加到您的应用程序(Android Studio工具栏中的图标,位于&#39;运行应用程序&#39;图标和&#39;停止应用程序&#39;图标之间)
  • 调试您的应用

答案 1 :(得分:3)

我会使用DDMS(Dalvik Debug Monitor Server(DDMS)来捕获堆栈跟踪等等。在你杀死并重启我们的app之后。

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

虽然它不允许您通过VS / XS调试应用程序,但它可以帮助您固定应用程序的原因区域。从那里我将在故障区域添加日志记录(即旧式printf样式调试)

enter image description here

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

从Visual Studio启动:

enter image description here

来自Xamarin Studio:

enter image description here

答案 2 :(得分:1)

如果您使用单件类预加载某些数据,则在您终止应用程序时将销毁该实例,因此您必须重新加载您的单例所需的数据。

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

你可以从nuget获得它:Mindscape.Raygun4Net 5.3.0