dar*_*aos 8 java android noclassdeffounderror dalvik
我的应用程序的一些用户得到了这个例外
java.lang.NoClassDefFoundError: [generic]
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
这不是常见的例外,因为有大量用户,只有部分用户有此异常.我不使用任何本机库,所有外部库都不使用任何本机代码
它发生的Android版本:
任何人都可以帮我解决问题吗?AndroidManifest中的接收器可以调用此问题吗?
NoClassDefFoundError与[generic]标签由VM,抛出从一个"预制"对象.该异常没有有用的堆栈跟踪,但通常不会单独出现.
背景:类加载器机制需要在加载器中找不到类时抛出异常.加载器必须遵循其父加载器,因此如果您尝试加载应用程序类,它将首先询问引导加载程序,它将失败并抛出异常.然后,app loader会自己进行查找,这可能会成功.
这意味着VM正在分配异常,初始化对象,并填充堆栈跟踪...然后将其丢弃,以用于未从引导类加载器中出来的每个类.
为了避免无意义的分配,引导加载程序(在VM内部实现)抛出一个通用的预分配异常对象.由于在VM启动时对象已完全形成,因此它没有有意义的堆栈跟踪信息.
在实践中,您没有看到这些,因为应用程序通常不直接从引导加载程序加载类.应用程序或系统加载程序为您创建一个有意义的例外.即使您直接从引导加载程序请求类,您也应该只将其视为a的"原因" ClassNotFoundException.
将DexClassLoader被写入到使用错误代码,而不是异常的当一个类无法找到,所以你不会看到在所有通过该路径.
如果它NoClassDefFoundError是更大异常的"原因",则需要获取最外层异常,因为它将具有有意义的堆栈跟踪.如果您看到它们自己出现,那么一些非常奇怪的事情正在进行 - 很可能一些代码试图直接加载类并且传递null而不是类加载器对象(这是您引用引导加载程序的方式).
| 归档时间: |
|
| 查看次数: |
4650 次 |
| 最近记录: |