有人知道为什么会这样吗?我看到我的应用程序报告了这起事故,但我不知道它是什么。
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)发布于 2015-09-13 05:14:28
这个错误可以在一小群设备上看到(我没有列表,但它们往往是没有名字的品牌),这些设备的固件开发人员出于未知的原因,将ANRManagerProxy从设备框架中删除(我通过查找固件并自己对其进行反编译来证实这一点)。
您所能做的最好是查找任何可能的代码,这些代码可能会锁定线程并导致设备变得没有响应性,并尝试使用AsyncTask或类似的方法异步运行代码并避免ANR。所讨论的设备总是低端的,因此您的代码将花费更长的时间来运行,并且有更大的机会导致这种情况发生。
我建议Hugo作为调试方法执行时间的一个很好的库,以便将您的注意力集中在花费最多时间的地方。这将有助于改善您的代码为所有用户,以及减少崩溃的风险,在问题。
发布于 2016-03-11 12:05:29
会发生这种事,因为
和
下面是一个设备列表,我在这里更频繁地体验了bug -,所以不仅仅是低端设备,小心您会忽略它:-)
联想A316i,N5i,V769M,G3 orro,V5,G3,X-2,F1 906,Z350,V10,G910,EVOLVEO StrongPhone D2,A70C,G9006,V13,C3000,n968,SM-T 322,H9503,GT-H 9503,C3000,C3000,联想TP-6000,Galaxy SM-T700C .
你唯一能做的就是让你的应用程序响应。这样做的最佳方法是在开发和测试严格模式时使用,即这样做:
public void onCreate() {
if (DEVELOPER_MODE) {
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads()
.detectDiskWrites()
.detectNetwork() // or .detectAll() for all detectable problems
.penaltyLog()
.build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects()
.detectLeakedClosableObjects()
.penaltyLog()
.penaltyDeath()
.build());
}
super.onCreate();
}https://stackoverflow.com/questions/29289641
复制相似问题