Eclipse升级到Juno后Android应用程序未启动(ClassNotFound)

Eclipse升级到Juno后Android应用程序未启动(ClassNotFound),android,eclipse,adt,classnotfoundexception,Android,Eclipse,Adt,Classnotfoundexception,我最近将Eclipse升级到Juno版本,一切似乎都正常。几周后(现在),我需要使用Android应用程序,所以我重新安装了ADT插件。它需要更新外部Android SDK目录中的一些相关内容。从那以后,一切似乎都很好 但当我在模拟器和测试设备上启动应用程序时,应用程序就崩溃了 09-10 14:55:14.879: I/ActivityManager(1571): Start proc nl.reinders.android.inventoryapp for activity nl.reind

我最近将Eclipse升级到Juno版本,一切似乎都正常。几周后(现在),我需要使用Android应用程序,所以我重新安装了ADT插件。它需要更新外部Android SDK目录中的一些相关内容。从那以后,一切似乎都很好

但当我在模拟器和测试设备上启动应用程序时,应用程序就崩溃了

09-10 14:55:14.879: I/ActivityManager(1571): Start proc nl.reinders.android.inventoryapp for activity nl.reinders.android.inventoryapp/.MainMenu: pid=5890 uid=10027 gids={3001, 3002, 3003}
09-10 14:55:14.999: W/dalvikvm(5890): Unable to resolve superclass of Lnl/reinders/android/inventoryapp/MyApplication; (239)
09-10 14:55:14.999: W/dalvikvm(5890): Link of class 'Lnl/reinders/android/inventoryapp/MyApplication;' failed
09-10 14:55:15.009: W/dalvikvm(5890): threadid=1: thread exiting with uncaught exception (group=0x40018560)
09-10 14:55:15.009: E/AndroidRuntime(5890): FATAL EXCEPTION: main
09-10 14:55:15.009: E/AndroidRuntime(5890): java.lang.RuntimeException: Unable to instantiate application nl.reinders.android.inventoryapp.MyApplication: java.lang.ClassNotFoundException: nl.reinders.android.inventoryapp.MyApplication in loader dalvik.system.PathClassLoader[/data/app/nl.reinders.android.inventoryapp-2.apk]
09-10 14:55:15.009: E/AndroidRuntime(5890):     at android.app.LoadedApk.makeApplication(LoadedApk.java:466)
09-10 14:55:15.009: E/AndroidRuntime(5890):     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3264)
09-10 14:55:15.009: E/AndroidRuntime(5890):     at android.app.ActivityThread.access$2200(ActivityThread.java:117)
09-10 14:55:15.009: E/AndroidRuntime(5890):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:969)
09-10 14:55:15.009: E/AndroidRuntime(5890):     at android.os.Handler.dispatchMessage(Handler.java:99)
09-10 14:55:15.009: E/AndroidRuntime(5890):     at android.os.Looper.loop(Looper.java:123)
09-10 14:55:15.009: E/AndroidRuntime(5890):     at android.app.ActivityThread.main(ActivityThread.java:3729)
09-10 14:55:15.009: E/AndroidRuntime(5890):     at java.lang.reflect.Method.invokeNative(Native Method)
09-10 14:55:15.009: E/AndroidRuntime(5890):     at java.lang.reflect.Method.invoke(Method.java:507)
09-10 14:55:15.009: E/AndroidRuntime(5890):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:874)
09-10 14:55:15.009: E/AndroidRuntime(5890):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:632)
09-10 14:55:15.009: E/AndroidRuntime(5890):     at dalvik.system.NativeStart.main(Native Method)
09-10 14:55:15.009: E/AndroidRuntime(5890): Caused by: java.lang.ClassNotFoundException: nl.reinders.android.inventoryapp.MyApplication in loader dalvik.system.PathClassLoader[/data/app/nl.reinders.android.inventoryapp-2.apk]
09-10 14:55:15.009: E/AndroidRuntime(5890):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
09-10 14:55:15.009: E/AndroidRuntime(5890):     at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
09-10 14:55:15.009: E/AndroidRuntime(5890):     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
09-10 14:55:15.009: E/AndroidRuntime(5890):     at android.app.Instrumentation.newApplication(Instrumentation.java:942)
09-10 14:55:15.009: E/AndroidRuntime(5890):     at android.app.LoadedApk.makeApplication(LoadedApk.java:461)
09-10 14:55:15.009: E/AndroidRuntime(5890):     ... 11 more
09-10 14:55:15.019: W/ActivityManager(1571):   Force finishing activity nl.reinders.android.inventoryapp/.MainMenu
09-10 14:55:15.529: W/ActivityManager(1571): Activity pause timeout for HistoryRecord{408f7cb0 nl.reinders.android.inventoryapp/.MainMenu}
09-10 14:55:25.649: W/ActivityManager(1571): Activity destroy timeout for HistoryRecord{408f7cb0 nl.reinders.android.inventoryapp/.MainMenu}
关键的IMHO是警告“无法解析超类”,这将导致类本身无法加载。奇怪的是,这个类出现在Eclipse中,它是RoboGuice的应用程序类(http://code.google.com/p/roboguice/)它的罐子就在这里。我可以点击它,类文件被打开(当然不可读,但是)

巧合的是,我仍然拥有旧的环境(EclipseIndigo),但由于升级了Android SDK,它需要更新ADT插件,并且存在同样的问题


有什么建议说明为什么RoboGuice jar似乎不包括在内吗?

对于较新的ADT插件,所有外部“jar”文件都需要位于
libs/
文件夹中(并且您不必从项目中引用它们……因此您可以右键单击>属性>Java构建路径>库并删除对jar文件的引用)

请检查构建路径中是否包含jar文件。
libs
文件夹中的所有JAR将自动包含在生成路径中,如果您的文件位于其他位置,则必须手动将其包含在项目属性的生成路径中。

除了
libs
vs
lib
问题,我们似乎能够通过拥有两个版本的eclipse和两个SDK文件夹,然后将较旧的eclipse(带有较旧的ADT插件)设置为指向较新的SDK文件夹,从而陷入这种情况


确保您的ADT指向预期的SDK文件夹。

Geesh!真正地这样一个相当重要的要求被添加,CNF例外是我得到的最好的信息。谢谢是的,它扼杀了我的计划一段时间,我脸都红了。很高兴你把它解决了。当他们这样做时,他们需要更好的发布文档。更重要的是,让ADT生成一个错误“您的libs不在/libs文件夹中”是一个非常好的主意。