1.ÔÚ Project µÄ build.gradle ÎļþÌí¼Ó apt ¹¤¾ßµÄ gradle ²å¼þ
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.2'
// Ìí¼Ó apt
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
}
2.ÔÚ Module µÄ build.gradle ÎļþÒýÈë apt ²å¼þºÍ dagger2
apply plugin: 'com.android.application'
// ÒýÈë apt ²å¼þ
apply plugin: 'com.neenbedankt.android-apt'
......
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:24.2.1'
// Ìí¼Ó dagger2
compile 'com.google.dagger:dagger:2.6'
apt 'com.google.dagger:dagger-compiler:2.6'
}
compile 'com.google.dagger:dagger:2.6'
Êǵ¼ÈëÒÀÀµµÄ dagger Ïà¹ØµÄÀà
apt 'com.google.dagger:dagger-compiler:2.6'
ÊÇʹÓà apt ¹¤¾ßÔÚ±àÒëµÄʱºò×Ô¶¯²úÉúÒÀÀµ×¢ÈëÏà¹Ø´úÂ룬apt »áÔÚ±àÒëµÄʱºòÔËÐÐ dagger-compiler ÀïÃæµÄ´úÂ룬À´×Ô¶¯²úÉúÒÀÀµ×¢ÈëÏà¹ØµÄ´úÂë
apply plugin: 'com.neenbedankt.android-apt'
Ó¦Óà apt gradle ²å¼þ
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
Ìí¼Ó apt ²å¼þ
//Ö¸¶¨µÄ×¢ÈëÄ¿±ê ÔÚÖ´ÐÐ×¢Èëºó ¼´¿ÉÖ±½Ó»ñÈ¡¶ÔÏó
@Inject
MainActivityPresenter presenter;
//Ò»°ã@module »áºÍ@providesÅäºÏʹÓà ×÷ΪÌṩ¶ÔÏóµÄ·½Ê½
@Module
public class MainActivityModule {
@Provides
public MainActivityPresenter MainActivityPresenterPrivider() {
return new MainActivityPresenter();
}
}
[email protected] ÀàËÆÓڵȺŵĹØÏµ °Ñ×¢ÈëµÄÄ¿±êºÍ ÌṩµÄµÄ¶ÔÏó¹ØÁªÆðÀ´Ìṩһ¸ö×¢Èë·½·¨ ½øÐйØÁª
@Component(modules = MainActivityModule.class)
public interface MainActivityComponent {
void in(MainActivity activity);
}
//Ãû×ÖÈ磺DaggerMainActivityComponent
DaggerMainActivityComponent.builder().mainActivityModule(new MainActivityModule()).build().in(this);
//ÕâÑùÄãÔÚÉÏÃæÊÇÓÐ@inject×¢½âµÄÄ¿±ê ¾ÍÓÐÖµÁË ¾Í¿ÉÒÔʹÓÃÁË