Android : Migration from dagger 1 to dagger 2 for unit tests stuck with below error

327 views Asked by At
13:37:25.068 [ERROR] [org.gradle.BuildExceptionReporter] Caused by: java.lang.NoClassDefFoundError: dagger/ObjectGraph
13:37:25.068 [ERROR] [org.gradle.BuildExceptionReporter]    at com.google.auto.factory.processor.AutoFactoryProcessor.init(AutoFactoryProcessor.java:75)
13:37:25.068 [ERROR] [org.gradle.BuildExceptionReporter]    at com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.<init>(JavacProcessingEnvironment.java:500)
13:37:25.068 [ERROR] [org.gradle.BuildExceptionReporter]    at com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.next(JavacProcessingEnvironment.java:597)
13:37:25.068 [ERROR] [org.gradle.BuildExceptionReporter]    at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:690)
13:37:25.068 [ERROR] [org.gradle.BuildExceptionReporter]    at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
13:37:25.069 [ERROR] [org.gradle.BuildExceptionReporter]    at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)
13:37:25.069 [ERROR] [org.gradle.BuildExceptionReporter]    at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176)
13:37:25.070 [ERROR] [org.gradle.BuildExceptionReporter]    at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
13:37:25.071 [ERROR] [org.gradle.BuildExceptionReporter]    at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:856)
13:37:25.071 [ERROR] [org.gradle.BuildExceptionReporter]    at com.sun.tools.javac.main.Main.compile(Main.java:523)
13:37:25.071 [ERROR] [org.gradle.BuildExceptionReporter]    ... 90 more
13:37:25.072 [ERROR] [org.gradle.BuildExceptionReporter] Caused by: java.lang.ClassNotFoundException: dagger.ObjectGraph
13:37:25.072 [ERROR] [org.gradle.BuildExceptionReporter]    ... 100 more

did someone faced similar problem? please help!

my gradle has

    ...
    testCompile 'com.android.support:support-annotations:' + ANDROID_SUPPORT_VERSION
    testCompile 'com.google.dagger:dagger-compiler:2.5'
    testCompile 'org.robolectric:robolectric:3.0'
    ...

Not sure whether i should add any other libraries to make it work!

1

There are 1 answers

1
David Rawson On

The upgrade from Dagger 1 to Dagger 2 is a breaking change. This means that you will need to refactor your classes for it to work as there is no ObjectGraph class in Dagger 2. Instead of ObjectGraph, you will need to construct instances of Component. Please see this guide for help migrating from Dagger 1 to Dagger 2.