2

I created a new Android project, using Guice to inject a class; But when I run it, I get a ClassNotFoundException.

The Exception happened after I updated the Android plugin to the latest version in Eclipse,

Version: jdk-6u33-windows-x64

guice-2.0-no_aop

Android 2.1


Code:

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);
        .......
    }

}

Log:

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)
TheBlueCat
  • 1,147
  • 5
  • 19
  • 38
karen
  • 21
  • 2

3 Answers3

1

BaseModule should extend AbstractModule not implement Module.

Jeff Axelrod
  • 27,676
  • 31
  • 147
  • 246
0

See this answer:

ClassNotFoundException with Guice 2.0

It seems you're missing a JAR in your project.

Download:

Community
  • 1
  • 1
TheBlueCat
  • 1,147
  • 5
  • 19
  • 38
0

I would suggest you check that you have correctly added the required jar to your buildpath.

Luke Taylor
  • 9,481
  • 13
  • 41
  • 73