Search code examples
androidandroid-5.0-lollipoproboguiceactiveandroid

java.lang.NoClassDefFoundError: roboguice.activity.SherlockAccountAuthenticatorActivity with ActiveAndroid in android 5.0


I am getting this error -

java.lang.NoClassDefFoundError: roboguice.activity.SherlockAccountAuthenticatorActivity
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:308)
at com.activeandroid.ModelInfo.scanForModelClasses(ModelInfo.java:187)
at com.activeandroid.ModelInfo.scanForModel(ModelInfo.java:152)
at com.activeandroid.ModelInfo.<init>(ModelInfo.java:63)
at com.activeandroid.Cache.initialize(Cache.java:66)
at com.activeandroid.ActiveAndroid.initialize(ActiveAndroid.java:44)
at com.activeandroid.ActiveAndroid.initialize(ActiveAndroid.java:34)
at com.activeandroid.ActiveAndroid.initialize(ActiveAndroid.java:30)
at com.activeandroid.app.Application.onCreate(Application.java:25)
at com.dvor.androidapp.Application.TabletApplication.onCreate(TabletApplication.java:22)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1011)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4518)
at android.app.ActivityThread.access$1500(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1339)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

In Android version 5.0, I am using RoboGuice and ActiveAndroid and the application class is extending com.activeandroid.app.Application, is there any other way how to fix this issue except extending the normal Application class and adding the model classes manually(this way it each model class needs to be added), as explained(https://github.com/pardom/ActiveAndroid/issues/291) :

  Configuration.Builder configurationBuilder = new Configuration.Builder(this);
    configurationBuilder.addModelClass(Test.class);
    configurationBuilder.addModelClass(Test2.class);
    ActiveAndroid.initialize(configurationBuilder.create());

Solution

  • The workaround for this problem, was adding the Roboguice jar files, and ActiveAndroid jar files to lib folder, and replacing Gradle "compile" command with -

    compile files('libs/ActiveAndroid.jar')
    compile files('libs/simple.facebook-2.2.jar')
    compile files('libs/guice-3.0-no_aop.jar')
    compile files('libs/javax.inject-1.jar')
    compile files('libs/roboguice-3.0b-experimental.jar')