使用ACRA Android收集崩溃小部件的堆栈跟踪

时间:2014-03-20 09:20:44

标签: android debugging android-widget acra

我正在尝试调试我正在使用ACRA开发的应用程序的小部件,但我遇到了问题。我使用以下代码来收集StackTrace:

import org.acra.ACRA;
import org.acra.ReportingInteractionMode;
import org.acra.annotation.ReportsCrashes;

import android.app.Application;

@ReportsCrashes(formKey = "",
 resToastText = R.string.crash_toast_text, mailTo = "mailAddress", mode = ReportingInteractionMode.TOAST, logcatArguments = {
        "-t", "100", "-v", "long", "ActivityManager:I", "MyApp:D", "*:S" })

public class MyApplication extends Application
{
    @Override
    public void onCreate()
    {
        super.onCreate();

        // The following line triggers the initialization of ACRA
        ACRA.init(this);
    }
}

问题是它发生在三星设备上,小部件在一段随机的时间后变得没有响应,我不知道是什么导致它(我从来没有调用onUpdate所以什么都不应该发生,但这是另一个故事)。我想使用ACRA来收集StackTrace,当它变得没有响应时,但是,例如,当我在10分钟后打开屏幕并看到小部件不工作时,我没有收到崩溃报告的ACRA发送给我的消息一封电子邮件,看看问题。

也许ACRA无法正常工作? 如果窗口小部件没有响应(例如按钮),则意味着它崩溃了吗? 你有更好的策略来调试这种情况吗?

非常感谢

1 个答案:

答案 0 :(得分:1)

如果窗口小部件没有响应,那么它没有崩溃,它处于某种死锁或等待状态。这就是为什么你没有收到ACRA的任何消息。

要么查看线程正在做什么,要么注入一定量的调试以尝试确定锁定应用程序的内容。