NoClassDefFoundError:android.app.AnrmagerProxy
有人知道为什么会这样吗?我看到我的应用程序报告了这次崩溃,但我不知道是什么NoClassDefFoundError:android.app.AnrmagerProxy,android,crash,stack-trace,noclassdeffounderror,android-anr-dialog,Android,Crash,Stack Trace,Noclassdeffounderror,Android Anr Dialog,有人知道为什么会这样吗?我看到我的应用程序报告了这次崩溃,但我不知道是什么 java.lang.NoClassDefFoundError: android.app.ANRManagerProxy Thread: Binder_3, Exception: java.lang.NoClassDefFoundError: android.app.ANRManagerProxy at android.app.ANRManagerNative.asInterface(ANRManagerNative.
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)
这一错误可以在一小部分设备上看到(我没有列表,但它们往往没有品牌),这些设备的固件开发人员出于未知原因从设备框架中删除了
anrmagerproxy
(我通过查找固件并自己反编译来确认这一点)
您所能做的最好的方法是尝试查找任何可能锁定线程并导致设备无响应的代码,并尝试使用AsyncTask
或类似工具异步运行代码并避免ANR。所讨论的设备总是低端的,因此您的代码将需要更长的时间来运行,并且导致这种情况发生的可能性更大
我建议将其作为调试方法执行时间的一个很好的库,以便将注意力集中在花费时间最多的地方。这将有助于为所有用户改进您的代码,并降低相关崩溃的风险。发生这种情况是因为
- 你的应用程序我正在主(GUI)线程中做一些繁重的工作
- 目标设备已将固件弄乱
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();
}
嗯,ANR通常与“应用程序未响应”相关,即长时间占用主应用程序线程时给出的错误消息。这发生在绑定线程上的事实表明,
anrmagerproxy
可能是捆绑关键线程(包括绑定线程池)的观察者。确保您没有占用主应用程序线程或任何绑定线程(例如,使用AIDL的远程服务)。然而,我不知道为什么一些Android版本缺少这个类,并给你提供了NoClassDefFoundError
。这只发生在一个特定的设备上吗?@JonasCz不能肯定,但我想,是的。你解决了这个问题吗?我们只在运行4.2.2的联想A316i上看到过一次。哇,这是一个很好的“功能”。-嘿,伙计,我们应该从框架中删除随机类吗?-当然,兄弟,这是个很棒的主意