包含库项目时的ClassNotFoundException(Eclipse,Android)

时间:2014-05-04 05:15:25

标签: java android eclipse github classnotfoundexception

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

它是一个ExpandableButtonMenu库。

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

这正是我所做的:

  1. 提取下载邮编。

  2. 转到文件 - >导入 - > Android->现有Android代码进入工作区

  3. 浏览解压缩的文件夹。

  4. 之后,两个项目可供选择(一个是演示,一个是图书馆项目)

  5. 同时选择

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

  7. 右键单击演示项目 - > properties-> Android-> Library->从步骤4添加库项目。

    我还尝试进入演示项目的构建路径并将库项目添加到构建路径。

  8. 代码返回NO错误,并且编译,但应用程序崩溃时出现以下错误:

    >  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 Build Path截图: enter image description here

1 个答案:

答案 0 :(得分:2)

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

  1. 下载了zip文件。萃取。

  2. 将这两个项目导入Eclipse。将Main作为图书馆项目。

  3. 引用了MainAppCompat

  4. 跑完项目

  5. src文件夹中没有java文件

    从库项目和DemoActivity

    的链接复制java文件

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

    然后下载

    https://github.com/JakeWharton/NineOldAndroids

    并在主库项目中引用它

    enter image description here

    您已完成并可以运行项目

    enter image description here

    enter image description here

    最后

    enter image description here