【问题标题】:ClassNotFoundException when including Library Project (Eclipse,Andrdoid)包含库项目(Eclipse、Android)时出现 ClassNotFoundException
【发布时间】:2014-06-20 14:21:41
【问题描述】:

我从 Github 下载了一个 android 项目。 https://github.com/lemonlabs/ExpandableButtonMenu

这是一个 ExpandableButtonMenu 库。

还提供了一个演示活动,用于查看它的实际效果。 但是,无论我尝试了什么,我似乎都没有让应用程序运行(它编译并崩溃)。 我正在使用 Eclipse Juno。

这正是我所做的:

  1. 解压下载 Zip。

  2. 转到File->import->Android->Existing Android Code into workspace

  3. 浏览提取的文件夹。

  4. 之后,有两个项目可供选择(一个是演示,一个是库项目)

  5. 同时选择

  6. 从属性->islibrary 将库项目标记为库

  7. 右击demo project->properties->Android->Library->添加第4步的library项目。

    我也试过去演示项目的构建路径,将库项目添加到构建路径中。

代码没有返回错误,并且可以编译,但应用程序崩溃并出现以下错误:

>  05-04 10:28:15.264: E/AndroidRuntime(3639): FATAL EXCEPTION: main
> 05-04 10:28:15.264: E/AndroidRuntime(3639):
> java.lang.RuntimeException: Unable to instantiate activity
> ComponentInfo{lt.lemonlabs.android.samples.expandablebuttonmenu/lt.lemonlabs.android.samples.expandablebuttonmenu.DemoActivity}:
> java.lang.ClassNotFoundException:
> lt.lemonlabs.android.samples.expandablebuttonmenu.DemoActivity 05-04
> 10:28:15.264: E/AndroidRuntime(3639):     at
> android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1880)
> 05-04 10:28:15.264: E/AndroidRuntime(3639):   at
> android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
> 05-04 10:28:15.264: E/AndroidRuntime(3639):   at
> android.app.ActivityThread.access$600(ActivityThread.java:123) 05-04
> 10:28:15.264: E/AndroidRuntime(3639):     at
> android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
> 05-04 10:28:15.264: E/AndroidRuntime(3639):   at
> android.os.Handler.dispatchMessage(Handler.java:99) 05-04
> 10:28:15.264: E/AndroidRuntime(3639):     at
> android.os.Looper.loop(Looper.java:137) 05-04 10:28:15.264:
> E/AndroidRuntime(3639):   at
> android.app.ActivityThread.main(ActivityThread.java:4424) 05-04
> 10:28:15.264: E/AndroidRuntime(3639):     at
> java.lang.reflect.Method.invokeNative(Native Method) 05-04
> 10:28:15.264: E/AndroidRuntime(3639):     at
> java.lang.reflect.Method.invoke(Method.java:511) 05-04 10:28:15.264:
> E/AndroidRuntime(3639):   at
> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:825)
> 05-04 10:28:15.264: E/AndroidRuntime(3639):   at
> com.android.internal.os.ZygoteInit.main(ZygoteInit.java:592) 05-04
> 10:28:15.264: E/AndroidRuntime(3639):     at
> dalvik.system.NativeStart.main(Native Method) 05-04 10:28:15.264:
> E/AndroidRuntime(3639): Caused by: java.lang.ClassNotFoundException:
> lt.lemonlabs.android.samples.expandablebuttonmenu.DemoActivity 05-04
> 10:28:15.264: E/AndroidRuntime(3639):     at
> dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
> 05-04 10:28:15.264: E/AndroidRuntime(3639):   at
> java.lang.ClassLoader.loadClass(ClassLoader.java:501) 05-04
> 10:28:15.264: E/AndroidRuntime(3639):     at
> java.lang.ClassLoader.loadClass(ClassLoader.java:461) 05-04
> 10:28:15.264: E/AndroidRuntime(3639):     at
> android.app.Instrumentation.newActivity(Instrumentation.java:1025)
> 05-04 10:28:15.264: E/AndroidRuntime(3639):   at
> android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1871)

编辑:: Java 构建路径截图:

【问题讨论】:

  • 您是否尝试将 jar 放入 libs 文件夹和 add to build path
  • @ViswanathL 它是一个库项目,必须被引用。无需添加jar
  • @raghunandan,如果有罐子,你也可以试试。它不仅限于图书馆。
  • @ViswanathL 库项目必须被引用。
  • 您是否导入了示例演示项目?

标签: java android eclipse github classnotfoundexception


【解决方案1】:

似乎是java构建路径的问题。

  1. 已下载 zip 文件。已提取。

  2. 将这两个项目都导入了 Eclipse。主要作为图书馆项目。

  3. 引用MainAppCompat

  4. 运行项目

src文件夹中没有java文件

从链接中复制库项目和 DemoActivity 的 java 文件

java 文件存在于 java 文件夹下。将其复制到您的源文件夹 src/

然后下载这个

https://github.com/JakeWharton/NineOldAndroids

并在您的主库项目中引用相同的内容

你已经完成并且可以运行项目了

终于

【讨论】:

  • 我使用 api 级别 17 而不是 19。此外,当我转到 extras->android->v7 并导出 appcompat 时,我得到一个名为 appcompat 的项目,而不是 android-support-v7-应用兼容。在该项目中, res->v11 和 res->14 中有错误标志(红十字),并且应用程序仍然无法运行
  • @harvey_slash 两者相同。
  • @harvey_slash 加入聊天@chat.stackoverflow.com/rooms/51960/… 将帮助您让它运行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-02
  • 1970-01-01
  • 1970-01-01
  • 2011-10-06
  • 1970-01-01
  • 1970-01-01
  • 2012-12-03
相关资源
最近更新 更多