有谁知道为什么会这样?我看到我的应用报告了这个崩溃,但我不知道它是什么.
java.lang.NoClassDefFoundError: android.app.ANRManagerProxy
Thread: Binder_3, Exception: java.lang.NoClassDefFoundError: android.app.ANRManagerProxy
at android.app.ANRManagerNative.asInterface(ANRManagerNative.java:30)
at android.app.ANRManagerNative$1.create(ANRManagerNative.java:94)
at android.app.ANRManagerNative$1.create(ANRManagerNative.java:88)
at android.util.Singleton.get(Singleton.java:34) at android.app.ANRManagerNative.getDefault(ANRManagerNative.java:37)
at android.os.MessageLogger.dump(MessageLogger.java:253)
at android.app.ANRAppManager.dumpMessageHistory(SourceFile:38)
at android.app.ActivityThread$ApplicationThread.dumpMessageHistory(ActivityThread.java:1176)
at android.app.ApplicationThreadNative.onTransact(ApplicationThreadNative.java:609)
at android.os.Binder.execTransact(Binder.java:351)
at dalvik.system.NativeStart.run(Native Method)
解决方法:
这个错误可以在一小组设备上看到(我没有列表,但它们往往是无名品牌),其固件开发人员,由于未知原因,从设备框架中删除了ANRManagerProxy(我通过以下方式证实了这一点)寻找固件并自行反编译).
您可以做的最好的事情是尝试寻找可能锁定线程并导致设备无响应的任何可能代码,并尝试使用AsyncTask或类似方法异步运行代码并避免ANR.有问题的设备总是低端的,因此您的代码运行时间会更长,并且更有可能导致这种情况发生.
我建议Hugo作为调试方法执行时间的好库,以便将注意力集中在花费最多时间的地方.这将有助于改善所有用户的代码,并降低相关崩溃的风险.