我创建了一个新的Android项目,使用Guice注入一个类;但是当我运行它时,我得到一个ClassNotFoundException
。
在我将Android插件更新为Eclipse中的最新版本
之后发生了异常版本: JDK-6u33 - 窗口的x64
吉斯-2.0-no_aop
Android 2.1
代码:
public class TextApplication{>....
public void onCreate() {
super.onCreate();
singleton = this;
this.in = Guice.createInjector(new BaseModule()); //Exception happens
........
}
public class BaseModule implements Module {
@Override
public void configure(Binder binder) {
binder.bind(ServiceRequest.class).in(Scopes.SINGLETON);
binder.bind(TService.class).in(Scopes.SINGLETON);
.......
}
}
日志:
08-02 16:28:26.646: E/dalvikvm(18212): Could not find class
'[Lcom.google.inject.Module;', referenced from method
com.shuyou.shop.TextApplication.onCreate 08-02 16:28:26.656:
W/dalvikvm(18212): VFY: unable to resolve new-array 588
([Lcom/google/inject/Module;) in Lcom/shuyou/shop/TextApplication;
08-02 16:28:26.656: W/dalvikvm(18212): threadid=1: thread exiting with
uncaught exception (group=0x2aacc8a0) 08-02 16:28:26.666:
E/AndroidRuntime(18212): FATAL EXCEPTION: main 08-02 16:28:26.666:
E/AndroidRuntime(18212): java.lang.NoClassDefFoundError:
[Lcom.google.inject.Module; 08-02 16:28:26.666:
E/AndroidRuntime(18212): at
com.shuyou.shop.TextApplication.onCreate(TextApplication.java:27)
08-02 16:28:26.666: E/AndroidRuntime(18212): at
android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969)
08-02 16:28:26.666: E/AndroidRuntime(18212): at
android.app.ActivityThread.handleBindApplication(ActivityThread.java:4286)
08-02 16:28:26.666: E/AndroidRuntime(18212): at
android.app.ActivityThread.access$3000(ActivityThread.java:132) 08-02
16:28:26.666: E/AndroidRuntime(18212): at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:2109)
08-02 16:28:26.666: E/AndroidRuntime(18212): at
android.os.Handler.dispatchMessage(Handler.java:99) 08-02
16:28:26.666: E/AndroidRuntime(18212): at
android.os.Looper.loop(Looper.java:123) 08-02 16:28:26.666:
E/AndroidRuntime(18212): at
android.app.ActivityThread.main(ActivityThread.java:4669) 08-02
16:28:26.666: E/AndroidRuntime(18212): at
java.lang.reflect.Method.invokeNative(Native Method) 08-02
16:28:26.666: E/AndroidRuntime(18212): at
java.lang.reflect.Method.invoke(Method.java:521) 08-02 16:28:26.666:
E/AndroidRuntime(18212): at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:876)
08-02 16:28:26.666: E/AndroidRuntime(18212): at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634) 08-02
16:28:26.666: E/AndroidRuntime(18212): at
dalvik.system.NativeStart.main(Native Method)
答案 0 :(得分:1)
BaseModule
extend AbstractModule
不应implement Module
。
答案 1 :(得分:0)
答案 2 :(得分:0)
我建议您检查是否已将所需的jar正确添加到构建路径中。