square / dagger

A fast dependency injector for Android and Java.
https://square.github.io/dagger/
Apache License 2.0
7.31k stars 3.06k forks source link

Could not generate Component file #544

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

}

JakeWharton commented 8 years ago

Dagger 1 does not have components. This is for Dagger 2 which should be filed at http://github.com/google/dagger instead.