Comments (19)
对于anr和native crash cockroach无能为力。看了下你的异常,是不是直接复制的代码,没有使用 compile 'com.wanjian:cockroach:0.0.5' ?bugly中集成Cockroach若报资源找不到可以把app/build.gradle中 compileSdkVersion 23改成 compileSdkVersion 25就可以了。在魅族mx5 android5.1上抛出java crash打印如下
com.tencent.bugly.demo E/AndroidRuntime: --->CockroachException:Thread[main,5,main]<---
java.lang.RuntimeException: This Crash create for Test! You can go to Bugly see more detail!
at com.tencent.bugly.crashreport.CrashReport.testJavaCrash(BUGLY:136)
at com.tencent.bugly.demo.MainActivity.onClick(MainActivity.java:43)
at android.view.View.performClick(View.java:4909)
at android.view.View$PerformClick.run(View.java:20390)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:194)
at com.wanjian.cockroach.Cockroach$1.run(Cockroach.java:47)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5826)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1009)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:804)
```java
并没有导致anr,app还是可以正常运行。看你的异常很奇怪,你用的什么手机,其他机型也这样吗
from cockroach.
我就在button按钮测试了一个bugly的crash。结果就直接anr了。
from cockroach.
try{}catch中的MyException。。。。Toast代码运行在主线程中,是不是你在里面做了耗时操作。由于handlerException方法可能运行在非ui线程中, demo中又想toast弹个窗口告诉开发者有异常,所以才new 了一个handler来发送消息
from cockroach.
public class MyException extends Exception {
public MyException() {
super();
}
public MyException(String detailMessage) {
super(detailMessage);
}
public MyException(String detailMessage, Throwable throwable) {
super(detailMessage, throwable);
}
public MyException(Throwable throwable) {
super(throwable);
}
}
这个类也没做啥。
public final class Cockroach {
public interface ExceptionHandler {
void handlerException(Thread thread, Throwable throwable);
}
private Cockroach() {
}
private static ExceptionHandler sExceptionHandler;
private static Thread.UncaughtExceptionHandler sUncaughtExceptionHandler;
private static boolean sInstalled = false;//标记位,避免重复安装卸载
/**
* 当主线程或子线程抛出异常时会调用exceptionHandler.handlerException(Thread thread, Throwable throwable)
* <p>
* exceptionHandler.handlerException可能运行在非UI线程中。
* <p>
* 若设置了Thread.setDefaultUncaughtExceptionHandler则可能无法捕获子线程异常。
*
* @param exceptionHandler
*/
public static synchronized void install(ExceptionHandler exceptionHandler) {
if (sInstalled) {
return;
}
sInstalled = true;
sExceptionHandler = exceptionHandler;
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
while (true) {
try {
Looper.loop();
} catch (Throwable e) {
// Binder.clearCallingIdentity();
if (e instanceof QuitCockroachException) {
return;
}
if (sExceptionHandler != null) {
sExceptionHandler.handlerException(Looper.getMainLooper().getThread(), e);
}
}
}
}
});
sUncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread t, Throwable e) {
if (sExceptionHandler != null) {
sExceptionHandler.handlerException(t, e);
}
}
});
}
public static synchronized void uninstall() {
if (!sInstalled) {
return;
}
sInstalled = false;
sExceptionHandler = null;
//卸载后恢复默认的异常处理逻辑,否则主线程再次抛出异常后将导致ANR,并且无法捕获到异常位置
Thread.setDefaultUncaughtExceptionHandler(sUncaughtExceptionHandler);
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
throw new QuitCockroachException("Quit Cockroach.....");//主线程抛出异常,迫使 while (true) {}结束
}
});
}
private static class QuitCockroachException extends RuntimeException {
QuitCockroachException(String message) {
super(message);
}
}
}
这个是Cockroach类。全部代码都在这了。。
from cockroach.
CrashReport是不是一个耗时的类,注释掉看看还报不报anr
from cockroach.
注销Cockroach后:
不报anr了。报bugly 的 crash
D/CrashReport: insert t_cr success!
02-28 11:33:12.805 10459-10598/com.tencent.bugly.demo D/CrashReport: update state size 1
02-28 11:33:12.805 10459-10459/com.tencent.bugly.demo I/CrashReport: wake up!
02-28 11:33:12.805 10459-10459/com.tencent.bugly.demo E/CrashReport: sys default last handle start!
02-28 11:33:12.815 10459-10459/com.tencent.bugly.demo E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.tencent.bugly.demo, PID: 10459
java.lang.RuntimeException: This Crash create for Test! You can go to Bugly see more detail!
at com.tencent.bugly.crashreport.CrashReport.testJavaCrash(BUGLY:131)
at com.tencent.bugly.demo.MainActivityAAA.onClick(MainActivityAAA.java:65)
at android.view.View.performClick(View.java:4438)
at android.view.View.onKeyUp(View.java:8244)
at android.widget.TextView.onKeyUp(TextView.java:5652)
at android.view.KeyEvent.dispatch(KeyEvent.java:3060)
at android.view.View.dispatchKeyEvent(View.java:7668)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:2143)
at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1526)
at android.app.Activity.dispatchKeyEvent(Activity.java:2418)
at android.support.v7.internal.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:50)
at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.dispatchKeyEvent(AppCompatDelegateImplBase.java:226)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2070)
at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:3846)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3820)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3518)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3419)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3575)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3419)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3551)
at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:3712)
at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2015)
at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1709)
at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1700)
at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:1992)
at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:138)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604)
at dalvik.system.NativeStart.main(Native Method)
from cockroach.
只注销掉CrashReport,代码如下
Cockroach.install(new Cockroach.ExceptionHandler() {
// handlerException内部建议手动try{ 你的异常处理逻辑 }catch(Throwable e){ } ,以防handlerException内部再次抛出异常,导致循环调用handlerException
@Override
public void handlerException(final Thread thread, final Throwable throwable) {
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
try {
throwable.printStackTrace();
} catch (Throwable e) {
}
}
});
}
});
依然会报anr
from cockroach.
Log 如下:
Exception dispatching finished signal.
02-28 11:39:52.945 20721-20721/com.tencent.bugly.demo E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
02-28 11:39:52.965 20721-20721/com.tencent.bugly.demo E/MessageQueue-JNI: java.lang.RuntimeException: This Crash create for Test! You can go to Bugly see more detail!
at com.tencent.bugly.crashreport.CrashReport.testJavaCrash(BUGLY:131)
at com.tencent.bugly.demo.MainActivityAAA.onClick(MainActivityAAA.java:62)
at android.view.View.performClick(View.java:4438)
at android.view.View.onKeyUp(View.java:8244)
at android.widget.TextView.onKeyUp(TextView.java:5652)
at android.view.KeyEvent.dispatch(KeyEvent.java:3060)
at android.view.View.dispatchKeyEvent(View.java:7668)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:2143)
at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1526)
at android.app.Activity.dispatchKeyEvent(Activity.java:2418)
at android.support.v7.internal.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:50)
at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.dispatchKeyEvent(AppCompatDelegateImplBase.java:226)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2070)
at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:3846)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3820)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3518)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3419)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3575)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3419)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3551)
at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:3712)
at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2015)
at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1709)
at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1700)
at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:1992)
at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:138)
at android.os.Looper.loop(Looper.java:123)
at com.tencent.bugly.demo.Cockroach$1.run(Cockroach.java:42)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604)
at dalvik.system.NativeStart.main(
02-28 11:39:52.965 20721-20721/com.tencent.bugly.demo W/System.err: java.lang.RuntimeException: This Crash create for Test! You can go to Bugly see more detail!
02-28 11:39:52.965 20721-20721/com.tencent.bugly.demo W/System.err: at com.tencent.bugly.crashreport.CrashReport.testJavaCrash(BUGLY:131)
02-28 11:39:52.965 20721-20721/com.tencent.bugly.demo W/System.err: at com.tencent.bugly.demo.MainActivityAAA.onClick(MainActivityAAA.java:62)
02-28 11:39:52.965 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.View.performClick(View.java:4438)
02-28 11:39:52.965 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.View.onKeyUp(View.java:8244)
02-28 11:39:52.965 20721-20721/com.tencent.bugly.demo W/System.err: at android.widget.TextView.onKeyUp(TextView.java:5652)
02-28 11:39:52.975 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.KeyEvent.dispatch(KeyEvent.java:3060)
02-28 11:39:52.975 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.View.dispatchKeyEvent(View.java:7668)
02-28 11:39:52.975 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
02-28 11:39:52.975 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
02-28 11:39:52.975 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
02-28 11:39:52.975 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
02-28 11:39:52.975 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
02-28 11:39:52.975 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
02-28 11:39:52.975 20721-20721/com.tencent.bugly.demo W/System.err: at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:2143)
02-28 11:39:52.975 20721-20721/com.tencent.bugly.demo W/System.err: at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1526)
02-28 11:39:52.975 20721-20721/com.tencent.bugly.demo W/System.err: at android.app.Activity.dispatchKeyEvent(Activity.java:2418)
02-28 11:39:52.975 20721-20721/com.tencent.bugly.demo W/System.err: at android.support.v7.internal.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:50)
02-28 11:39:52.975 20721-20721/com.tencent.bugly.demo W/System.err: at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.dispatchKeyEvent(AppCompatDelegateImplBase.java:226)
02-28 11:39:52.985 20721-20721/com.tencent.bugly.demo W/System.err: at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2070)
02-28 11:39:52.985 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:3846)
02-28 11:39:52.985 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3820)
02-28 11:39:52.985 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
02-28 11:39:52.985 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
02-28 11:39:52.985 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
02-28 11:39:52.985 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3518)
02-28 11:39:52.985 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3419)
02-28 11:39:52.995 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3575)
02-28 11:39:52.995 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
02-28 11:39:52.995 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
02-28 11:39:52.995 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
02-28 11:39:52.995 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3419)
02-28 11:39:52.995 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
02-28 11:39:52.995 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
02-28 11:39:52.995 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
02-28 11:39:52.995 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3551)
02-28 11:39:52.995 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:3712)
02-28 11:39:52.995 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2015)
02-28 11:39:53.005 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1709)
02-28 11:39:53.005 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1700)
02-28 11:39:53.005 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:1992)
02-28 11:39:53.005 20721-20721/com.tencent.bugly.demo W/System.err: at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141)
02-28 11:39:53.005 20721-20721/com.tencent.bugly.demo W/System.err: at android.os.MessageQueue.nativePollOnce(Native Method)
02-28 11:39:53.005 20721-20721/com.tencent.bugly.demo W/System.err: at android.os.MessageQueue.next(MessageQueue.java:138)
02-28 11:39:53.005 20721-20721/com.tencent.bugly.demo W/System.err: at android.os.Looper.loop(Looper.java:123)
02-28 11:39:53.005 20721-20721/com.tencent.bugly.demo W/System.err: at com.tencent.bugly.demo.Cockroach$1.run(Cockroach.java:42)
02-28 11:39:53.005 20721-20721/com.tencent.bugly.demo W/System.err: at android.os.Handler.handleCallback(Handler.java:733)
02-28 11:39:53.005 20721-20721/com.tencent.bugly.demo W/System.err: at android.os.Handler.dispatchMessage(Handler.java:95)
02-28 11:39:53.005 20721-20721/com.tencent.bugly.demo W/System.err: at android.os.Looper.loop(Looper.java:136)
02-28 11:39:53.005 20721-20721/com.tencent.bugly.demo W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5001)
02-28 11:39:53.005 20721-20721/com.tencent.bugly.demo W/System.err: at java.lang.reflect.Method.invokeNative(Native Method)
02-28 11:39:53.005 20721-20721/com.tencent.bugly.demo W/System.err: at java.lang.reflect.Method.invoke(Method.java:515)
02-28 11:39:53.015 20721-20721/com.tencent.bugly.demo W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788)
02-28 11:39:53.015 20721-20721/com.tencent.bugly.demo W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604)
02-28 11:39:53.015 20721-20721/com.tencent.bugly.demo W/System.err: at dalvik.system.NativeStart.main(Native Method)
02-28 11:40:00.385 20721-20764/com.tencent.bugly.demo D/CrashReport: read trace first dump for create time!
02-28 11:40:00.385 20721-20726/com.tencent.bugly.demo I/dalvikvm: threadid=3: reacting to signal 3
02-28 11:40:00.465 20721-20764/com.tencent.bugly.demo E/CrashReport: first dump error 0 0 null
02-28 11:40:00.465 20721-20764/com.tencent.bugly.demo W/CrashReport: trace dump fail could not get time!
02-28 11:40:00.475 20721-20726/com.tencent.bugly.demo I/dalvikvm: Wrote stack traces to '/data/anr/traces.txt'
02-28 11:40:00.525 20721-20764/com.tencent.bugly.demo D/dalvikvm: GC_FOR_ALLOC freed 394K, 29% free 3340K/4660K, paused 17ms, total 18ms
02-28 11:40:00.535 20721-20764/com.tencent.bugly.demo D/CrashReport: to find!
02-28 11:40:00.535 20721-20764/com.tencent.bugly.demo D/CrashReport: waiting!
02-28 11:40:01.385 20721-20764/com.tencent.bugly.demo D/CrashReport: waiting!
02-28 11:40:01.885 20721-20764/com.tencent.bugly.demo D/CrashReport: waiting!
02-28 11:40:02.385 20721-20764/com.tencent.bugly.demo D/CrashReport: waiting!
02-28 11:40:02.885 20721-20764/com.tencent.bugly.demo D/CrashReport: waiting!
02-28 11:40:03.385 20721-20764/com.tencent.bugly.demo D/CrashReport: waiting!
02-28 11:40:03.895 20721-20764/com.tencent.bugly.demo D/CrashReport: waiting!
02-28 11:40:04.135 20721-20764/com.tencent.bugly.demo D/CrashReport: found!
02-28 11:40:04.135 20721-20764/com.tencent.bugly.demo I/CrashReport: found visiable anr , start to process!
02-28 11:40:04.145 20721-20764/com.tencent.bugly.demo D/CrashReport: anr tm:1488253200482
tr:/data/data/com.tencent.bugly.demo/files/bugly/bugly_trace_1488253200482.txt
proc:com.tencent.bugly.demo
sMsg:ANR Input dispatching timed out (Waiting because the focused window has not finished processing the input events that were previously delivered to it.)
lMsg:ANR in com.tencent.bugly.demo (com.tencent.bugly.demo/.MainActivityAAA)
PID: 20721
Reason: Input dispatching timed out (Waiting because the focused window has not finished processing the input events that were previously delivered to it.)
Load: 5.29 / 5.01 / 3.55
from cockroach.
建议这样打印日志 Log.e("AndroidRuntime","--->CockroachException:"+thread+"<---",throwable);
控制台设置成error级别就可以了,不然会输出很多log。现在app可以正常运行吗,比如点击按钮是否有反应等
from cockroach.
换成:
....
new Handler(Looper.getMainLooper()).post(new Runnable() {
@OverRide
public void run() {
try {
Log.e("AndroidRuntime","ssss1 --->CockroachException:"+thread+"<---",throwable);
// throwable.printStackTrace();
} catch (Throwable e) {
}
}
});
....
log这样:
02-28 11:49:34.655 5706-5786/com.tencent.bugly.demo D/CrashReport: insert t_ui success! 19
02-28 11:49:35.645 5706-5706/com.tencent.bugly.demo E/InputEventSender: Exception dispatching finished signal.
02-28 11:49:35.645 5706-5706/com.tencent.bugly.demo E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
02-28 11:49:35.665 5706-5706/com.tencent.bugly.demo E/MessageQueue-JNI: java.lang.RuntimeException: This Crash create for Test! You can go to Bugly see more detail!
at com.tencent.bugly.crashreport.CrashReport.testJavaCrash(BUGLY:131)
at com.tencent.bugly.demo.MainActivityAAA.onClick(MainActivityAAA.java:64)
at android.view.View.performClick(View.java:4438)
at android.view.View.onKeyUp(View.java:8244)
at android.widget.TextView.onKeyUp(TextView.java:5652)
at android.view.KeyEvent.dispatch(KeyEvent.java:3060)
at android.view.View.dispatchKeyEvent(View.java:7668)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:2143)
at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1526)
at android.app.Activity.dispatchKeyEvent(Activity.java:2418)
at android.support.v7.internal.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:50)
at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.dispatchKeyEvent(AppCompatDelegateImplBase.java:226)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2070)
at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:3846)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3820)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3518)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3419)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3575)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3419)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3551)
at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:3712)
at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2015)
at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1709)
at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1700)
at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:1992)
at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:138)
at android.os.Looper.loop(Looper.java:123)
at com.tencent.bugly.demo.Cockroach$1.run(Cockroach.java:42)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604)
at dalvik.system.NativeStart.main(
02-28 11:49:35.695 5706-5706/com.tencent.bugly.demo D/dalvikvm: GC_FOR_ALLOC freed 405K, 29% free 3319K/4656K, paused 13ms, total 13ms
02-28 11:49:35.705 5706-5706/com.tencent.bugly.demo E/AndroidRuntime: ssss1 --->CockroachException:Thread[main,5,main]<---
java.lang.RuntimeException: This Crash create for Test! You can go to Bugly see more detail!
at com.tencent.bugly.crashreport.CrashReport.testJavaCrash(BUGLY:131)
at com.tencent.bugly.demo.MainActivityAAA.onClick(MainActivityAAA.java:64)
at android.view.View.performClick(View.java:4438)
at android.view.View.onKeyUp(View.java:8244)
at android.widget.TextView.onKeyUp(TextView.java:5652)
at android.view.KeyEvent.dispatch(KeyEvent.java:3060)
at android.view.View.dispatchKeyEvent(View.java:7668)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:2143)
at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1526)
at android.app.Activity.dispatchKeyEvent(Activity.java:2418)
at android.support.v7.internal.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:50)
at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.dispatchKeyEvent(AppCompatDelegateImplBase.java:226)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2070)
at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:3846)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3820)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3518)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3419)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3575)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3419)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3551)
at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:3712)
at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2015)
at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1709)
at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1700)
at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:1992)
at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:138)
at android.os.Looper.loop(Looper.java:123)
at com.tencent.bugly.demo.Cockroach$1.run(Cockroach.java:42)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788)
at com.android.internal.os.ZygoteInit.main(Zygot
from cockroach.
按钮无反应,还是会报anr
from cockroach.
把你工程发过来
from cockroach.
http://pan.baidu.com/s/1pKOnphx
from cockroach.
我这没问题,没有ANR,没有crash,三个按钮都可以正常点击。用的魅族mx5,android5.1,gradle 2.14-all,你的在其他手机上有没有问题
from cockroach.
from cockroach.
我好像找到原因了。运行我给你的项目。连着USB。先用adb命令输入
adb shell input keyevent 21
这时候焦点在 “测试Java Crash” button按钮上
再输入
adb shell input keyevent 23
然后我的手机上的demo也anr了。
from cockroach.
这个问题确实很奇怪,不过一般情况下不会出现,并且与bugly无关,应该是adb发送键盘点击命令导致,但主线程并没有阻塞,只是没法接受触摸事件,这时再触摸屏幕就会导致ANR,若不触摸屏幕就没事,如下是测试代码,当通过adb命令发送键盘事件点击btnTestJavaCrash,并抛出异常后就会导致无法接受触摸事件,但主线程没有阻塞,可以看到延时2000ms的Toast依旧弹出了,而且也可以为btnTestJavaCrash设置文字。
@Override
public void onClick(final View v) {
switch (v.getId()) {
case R.id.btnTestJavaCrash: // 点击测试Java Crash
// CrashReport.testJavaCrash();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
((Button) v).setText(System.currentTimeMillis()+"");
Toast.makeText(getApplicationContext(),"toast",1).show();
}
},2000);
if (true)
throw new RuntimeException("my exception--------->");
break;
case R.id.btnTestANRCrash: // 点击测试ANR Crash
// int a=3/0;
//Toast.makeText(getBaseContext(),a,Toast.LENGTH_SHORT).show();
break;
case R.id.btnTestNativeCrash: // 点击测试Native Crash
// CrashReport.testNativeCrash();
break;
}
}
分别点击button和通过adb发送点击事件,打印日志如下
02-28 21:53:24.239 6419-6419/com.tencent.bugly.demo E/AndroidRuntime: ssss1 --->CockroachException:Thread[main,5,main]<---
java.lang.RuntimeException: my exception--------->
at com.tencent.bugly.demo.MainActivityAAA.onClick(MainActivityAAA.java:73)
at android.view.View.performClick(View.java:4909)
at android.view.View$PerformClick.run(View.java:20390)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:194)
at com.tencent.bugly.demo.Cockroach$1.run(Cockroach.java:43)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5826)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1009)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:804)
02-28 21:53:31.724 6419-6419/com.tencent.bugly.demo E/InputEventSender: Exception dispatching finished signal.
02-28 21:53:31.724 6419-6419/com.tencent.bugly.demo E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
02-28 21:53:31.725 6419-6419/com.tencent.bugly.demo E/MessageQueue-JNI: java.lang.RuntimeException: my exception--------->
at com.tencent.bugly.demo.MainActivityAAA.onClick(MainActivityAAA.java:73)
at android.view.View.performClick(View.java:4909)
at android.view.View.onKeyUp(View.java:9239)
at android.widget.TextView.onKeyUp(TextView.java:6064)
at android.view.KeyEvent.dispatch(KeyEvent.java:2689)
at android.view.View.dispatchKeyEvent(View.java:8581)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1530)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1530)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1530)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1530)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1530)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1530)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:2531)
at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1793)
at android.app.Activity.dispatchKeyEvent(Activity.java:2783)
at android.support.v7.internal.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:50)
at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.dispatchKeyEvent(AppCompatDelegateImplBase.java:226)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2424)
at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:4642)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4598)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4082)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4135)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4101)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4238)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4109)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4295)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4082)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4135)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4101)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4109)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4082)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4135)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4101)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4271)
at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:4457)
at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2359)
at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1983)
at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1974)
at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:2336)
at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:148)
at android.os.Looper.loop(Looper.java:151)
at com.tencent.bugly.demo.Cockroach$1.run(Cockroach.java:43)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5826)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1009)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:804)
02-28 21:53:31.739 6419-6419/com.tencent.bugly.demo E/AndroidRuntime: ssss1 --->CockroachException:Thread[main,5,main]<---
java.lang.RuntimeException: my exception--------->
at com.tencent.bugly.demo.MainActivityAAA.onClick(MainActivityAAA.java:73)
at android.view.View.performClick(View.java:4909)
at android.view.View.onKeyUp(View.java:9239)
at android.widget.TextView.onKeyUp(TextView.java:6064)
at android.view.KeyEvent.dispatch(KeyEvent.java:2689)
at android.view.View.dispatchKeyEvent(View.java:8581)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1530)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1530)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1530)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1530)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1530)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1530)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:2531)
at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1793)
at android.app.Activity.dispatchKeyEvent(Activity.java:2783)
at android.support.v7.internal.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:50)
at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.dispatchKeyEvent(AppCompatDelegateImplBase.java:226)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2424)
at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:4642)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4598)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4082)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4135)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4101)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4238)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4109)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4295)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4082)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4135)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4101)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4109)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4082)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4135)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4101)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4271)
at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:4457)
at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2359)
at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1983)
at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1974)
at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:2336)
at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:148)
at android.os.Looper.loop(Looper.java:151)
at com.tencent.bugly.demo.Cockroach$1.run(Cockroach.java:43)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5826)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1009)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:804)
至于深层次的原因还在研究。
from cockroach.
我也用模拟器试了一下,如果用模拟器的按键来操作,也会anr。智能电视的也是用遥控器的来模拟按键,操作电视,因此我才会发现这个问题。我怀疑可能是Cockroach的Looper.loop()导致anr。我看了几天也没找到解决方法,希望大神能研究出来,嘿嘿。
from cockroach.
很多人曲解了这个库,现在关闭这个issues
from cockroach.
Related Issues (20)
- 里面的方法都是什么意思?
- 是用monkey测试时,会出现ANR问题,哪位遇到过? HOT 1
- 好像只防了主线程,子线程有办法吗?
- 请问下主线程调用两次looper.loop不会有问题吗? HOT 1
- googleplay上架问题
- 这个跟rxjava的异常处理是不是有冲突? HOT 2
- 支持Android 10 Android 11吗?源码没看到29 和 30 的适配代码 HOT 3
- 经常报这种错,有解决方法不? HOT 2
- 小米android11手机上打不开问题 HOT 3
- 模拟首页崩溃,黑屏
- android 11 全奔溃 HOT 1
- 请教一下关于使用LiveData时的错误情境 HOT 2
- 下个版本可以兼容AndroidX吗? HOT 2
- 性能检测工具和不崩溃的冲突 HOT 1
- 没有jcenter或者maven的依赖包吗 HOT 1
- 用户数据同步的功能 导致卡住不动 HOT 1
- 接入后Application有被反复启动的循环 HOT 2
- 关于onMayBeBlackScreen更好解决的一点粗浅看法
- 想问下Recyclerview 中的异常为什么捕获不了?
- 适用于Service吗? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cockroach.