我正在尝试调试我正在使用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无法正常工作? 如果窗口小部件没有响应(例如按钮),则意味着它崩溃了吗? 你有更好的策略来调试这种情况吗?
非常感谢
答案 0 :(得分:1)
如果窗口小部件没有响应,那么它没有崩溃,它处于某种死锁或等待状态。这就是为什么你没有收到ACRA的任何消息。
要么查看线程正在做什么,要么注入一定量的调试以尝试确定锁定应用程序的内容。