- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我的应用程序的一些用户遇到了这个异常
java.lang.NoClassDefFoundError: [generic]
at dalvik.system.NativeStart.main(Native Method)
这不是常见的异常,因为用户数量众多,而且只有部分用户有此异常。我不使用任何 native 库,所有外部库也不使用任何 native 代码
它发生的 Android 版本:
有人可以帮我解决问题吗? AndroidManifest中的receiver可以调用这个问题吗?
最佳答案
带有 [generic]
标记的
NoClassDefFoundError
由 VM 从“预制”对象抛出。该异常没有有用的堆栈跟踪,但通常不会自行出现。
背景:类加载器机制需要在加载器中找不到类时抛出异常。加载器必须服从它们的父加载器,所以如果你尝试加载一个应用程序类,它会首先询问引导加载器,这将失败并抛出异常。应用加载器随后会进行自己的查找,这很可能会成功。
这意味着 VM 正在分配一个异常,初始化对象,并填充堆栈跟踪...然后将其丢弃,对于不是来自引导类加载器的每个类。
为避免无意义的分配,引导加载程序(在 VM 内实现)抛出一个通用的预分配异常对象。因为该对象是在 VM 启动时完全形成的,所以它没有有意义的堆栈跟踪信息。
实际上您看不到这些,因为应用程序通常不会直接从引导加载程序加载类。应用程序或系统加载器为您创建一个有意义的异常。即使您直接从引导加载程序请求一个类,您也应该只将此视为 ClassNotFoundException
的“原因”。
编写 DexClassLoader
是为了在找不到类时使用错误代码而不是异常,因此您根本不会通过该路径看到它。
如果 NoClassDefFoundError
是更大异常的“原因”,您需要获取最外层的异常,因为它会有有意义的堆栈跟踪。如果你看到它们自己出现,那么一些非常奇怪的事情正在发生——很可能是一些代码试图直接加载类并传递 null
而不是类加载器对象(这是你如何引用引导加载程序)。
关于java.lang.NoClassDefFoundError : [generic] at dalvik. system.NativeStart.main(本地方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22073622/
为了播放 AAC 文件,我安装了 NDK 并下载了 http://code.google.com/p/aacplayer-android/代码 我从中下载的那个源 svn checkout http
嗨,我想制作在线广播应用程序,因为我必须为此播放 aac 文件,我从 http://aacplayer-android.googlecode.com/files/aacplayer-android-r
刚刚在 Google Play(例如 Android Market)发布者界面收到错误报告。 这是完整堆栈跟踪: java.lang.OutOfMemoryError: [内存耗尽] 在 dalvik
我的应用程序的一些用户遇到了这个异常 java.lang.NoClassDefFoundError: [generic] at dalvik.system.NativeStart.main(Nativ
对于 Android使用 Android Studio 2.0这是我的代码 package com.innovapp.maptest; import android.location.Location
我是一名优秀的程序员,十分优秀!