google / dagger

A fast dependency injector for Android and Java.
https://dagger.dev
Apache License 2.0
17.45k stars 2.02k forks source link

Could not generate Component file #451

Closed zhouchaohong1111 closed 8 years ago

zhouchaohong1111 commented 8 years ago

if the androidTest Code put in Project/tests/java folder not in Android Studio stardard foldler. (from elipse project, so the folder structure is this way)

the DaggerSimpleTest_SimpleComponent could not be generated.

dagger-compiler not work?

---- ----------------build.gradle ----------------- sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] jniLibs.srcDirs = ['libs'] }

// Move the tests to tests/java, tests/res, etc...
androidTest.setRoot('tests')

// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This moves them out of them default location under src/<type>/... which would
// conflict with src/ being used by the main source set.
// Adding new build types or product flavors should be accompanied
// by a similar customization.
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')

}

-------------------- SimpleTest.java -------------- @RunWith(AndroidJUnit4.class) public class SimpleTest {

@Singleton @Component( modules = {MockUserModule.class}) public interface SimpleComponent extends DemoComponent { void inject(SimpleTest test); }

@Before public void setUp() {

// SimpleComponent component = } }

---------------------MockUserModule.java---------------- @Module public class MockUserModule { @Provides @Singleton User provideUser() { return Mockito.mock(User.class); } }

ronshapiro commented 8 years ago

My guess is you need an androidTestApt 'com.google.dagger:dagger-compiler:2.6' in your build.gradle. But please post this on stackoverflow, not on github.

zhouchaohong1111 commented 8 years ago

Thanks for your answer。 I have set dagger-compiler:2.6 when error occured, so this is not the right way to fix this issue.