2012-08-02 27 views
2

我创建了一个新的Android项目,使用Guice注入一个类;但是当我运行它时,我得到一个ClassNotFoundException为什么在Android上使用Guice 2.0获得ClassNotFoundException?

异常发生的我更新了Android插件在Eclipse的最新版本,

版本后: 的jdk-6u33-Windows的64位

吉斯-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) 

回答

1

BaseModule应该extend AbstractModuleimplement Module

+0

我做了,但它没有工作。 = = |||| – karen 2012-08-06 06:05:22

+0

@karen'BaseModule'应该'扩展AbstractModule'而不是'执行Module'。 – 2012-08-06 14:51:09

0

我建议你检查是否已正确添加所需的jar到您的构建路径。

相关问题