如何修复AndroidRuntime错误中的NoClassDefFoundError?

如何修复AndroidRuntime错误中的NoClassDefFoundError?,android,pdf,noclassdeffounderror,Android,Pdf,Noclassdeffounderror,我正在从事一个github android项目:ebookdroid。我在eclipse中导入代码,选择NDK路径编译c和cpp文件。一旦完成,就没有错误了。我在我的设备上运行项目,日志中有java.lang.NoClassDefFoundError 06-14 11:25:57.806: E/AndroidRuntime(16523): FATAL EXCEPTION: main 06-14 11:25:57.806: E/AndroidRuntime(16523): java.lang.No

我正在从事一个github android项目:ebookdroid。我在eclipse中导入代码,选择NDK路径编译c和cpp文件。一旦完成,就没有错误了。我在我的设备上运行项目,日志中有java.lang.NoClassDefFoundError

06-14 11:25:57.806: E/AndroidRuntime(16523): FATAL EXCEPTION: main
06-14 11:25:57.806: E/AndroidRuntime(16523): java.lang.NoClassDefFoundError: org.ebookdroid.ui.library.adapters.BooksAdapter
06-14 11:25:57.806: E/AndroidRuntime(16523):    at org.ebookdroid.ui.library.RecentActivityController.beforeCreate(RecentActivityController.java:104)
06-14 11:25:57.806: E/AndroidRuntime(16523):    at org.ebookdroid.ui.library.RecentActivityController.beforeCreate(RecentActivityController.java:1)
06-14 11:25:57.806: E/AndroidRuntime(16523):    at org.emdev.ui.AbstractActionActivity.onCreate(AbstractActionActivity.java:93)
06-14 11:25:57.806: E/AndroidRuntime(16523):    at android.app.Activity.performCreate(Activity.java:4469)
06-14 11:25:57.806: E/AndroidRuntime(16523):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1052)
06-14 11:25:57.806: E/AndroidRuntime(16523):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1932)
06-14 11:25:57.806: E/AndroidRuntime(16523):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1993)
06-14 11:25:57.806: E/AndroidRuntime(16523):    at android.app.ActivityThread.access$600(ActivityThread.java:127)
06-14 11:25:57.806: E/AndroidRuntime(16523):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1159)
06-14 11:25:57.806: E/AndroidRuntime(16523):    at android.os.Handler.dispatchMessage(Handler.java:99)
06-14 11:25:57.806: E/AndroidRuntime(16523):    at android.os.Looper.loop(Looper.java:137)
06-14 11:25:57.806: E/AndroidRuntime(16523):    at android.app.ActivityThread.main(ActivityThread.java:4507)
06-14 11:25:57.806: E/AndroidRuntime(16523):    at java.lang.reflect.Method.invokeNative(Native Method)
06-14 11:25:57.806: E/AndroidRuntime(16523):    at java.lang.reflect.Method.invoke(Method.java:511)
06-14 11:25:57.806: E/AndroidRuntime(16523):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:978)
06-14 11:25:57.806: E/AndroidRuntime(16523):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745)
06-14 11:25:57.806: E/AndroidRuntime(16523):    at dalvik.system.NativeStart.main(Native Method)
06-14 11:32:40.056: I/Process(16613): Sending signal. PID: 16613 SIG: 9
为什么会出现这种错误?在类中,我导入了BookAdapter的正确包。。。 有人能告诉我我能尝试什么吗?
对不起,我的英语不好&提前谢谢你

NoClassDefFoundError的原因是某个特定的类在类路径中不可用,因此我们需要将其添加到类路径中,或者我们需要检查为什么它在类路径中不可用(如果我们希望它可用)。可能有多种原因,如:

1) 类在Java类路径中不可用

2) 您可能正在使用jar命令运行程序,而在清单文件的ClassPath属性中未定义类

3) 任何启动脚本都将覆盖Classpath环境变量

4) 因为NoClassDefFoundError是java.lang.LinkageError的一个子类,所以如果像本机库这样的依赖项之一不可用,它也可能出现

5) 检查日志文件中的java.lang.ExceptionInInitializerError。由于静态初始化失败而导致的NoClassDefFoundError非常常见

6) 如果您在Java EE环境中工作,则类在多个类加载器之间的可见性也可能导致Java.lang.NoClassDefFoundError,请参阅示例和场景部分以获取详细讨论


现在我们将看到java.lang.NoClassDefFoundError出现之前的几个示例和场景,以及如何解决它。这可以帮助您排除Java应用程序中NoClassDefFoundError的根本原因。

NoClassDefFoundError的原因是某个特定类在类路径中不可用,因此我们需要将其添加到类路径中,或者如果我们希望它在类路径中可用,我们需要检查它为什么不可用。可能有多种原因,如:

1) 类在Java类路径中不可用

2) 您可能正在使用jar命令运行程序,而在清单文件的ClassPath属性中未定义类

3) 任何启动脚本都将覆盖Classpath环境变量

4) 因为NoClassDefFoundError是java.lang.LinkageError的一个子类,所以如果像本机库这样的依赖项之一不可用,它也可能出现

5) 检查日志文件中的java.lang.ExceptionInInitializerError。由于静态初始化失败而导致的NoClassDefFoundError非常常见

6) 如果您在Java EE环境中工作,则类在多个类加载器之间的可见性也可能导致Java.lang.NoClassDefFoundError,请参阅示例和场景部分以获取详细讨论


现在我们将看到java.lang.NoClassDefFoundError出现之前的几个示例和场景,以及如何解决它。这可以帮助您排除Java应用程序中NoClassDefFoundError的根本原因。

因为您使用的是库,这是运行时异常。那就去医院吧

项目属性>Java构建路径>订单和导入选项卡
并检查您正在使用的库


似乎ADT更新22,您必须手动执行此操作:

因为您使用的是库,这是运行时异常。那就去医院吧

项目属性>Java构建路径>订单和导入选项卡
并检查您正在使用的库


似乎ADT更新了22,您必须手动执行此操作:

您是否将ADT更新为rev 22?这看起来像是生成路径问题@Raghunandan:I have ADT build v22.0.1-685705@verybadalloc:抱歉,我没有发现这个问题。你是否将adt更新为rev 22?看起来像是生成路径问题@Raghunandan:我有adt生成v22.0.1-685705@verybadalloc:对不起,我没有找到这个问题