2012-08-02 35 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到您的構建路徑。

相關問題