我試圖定義將使用我的注射類時,似乎不能使用注射詞。Dagger for Android - 無法定義類的注射
這裏是我MainModule.java類:
import dagger.Module;
import dagger.Provides;
@Module()
public class MainModule {
private Context context;
public MainModule(Context context) {
this.context = context;
}
@Provides
Object provideSomething(Context context) {
return new Object();
}
}
@Module()
class SubModule1 {
private Context context;
public SubModule1(Context context) {
this.context = context;
}
@Provides
Object provideSomethingElse(Context context) {
return new Object();
}
}
這裏是我MainApplication類,在android系統擴展應用:
public class MainApplication extends Application {
private ObjectGraph objectGraph;
@Override
public void onCreate() {
super.onCreate();
objectGraph = ObjectGraph.create(new MainModule(this));
objectGraph = ObjectGraph.create(new SubModule1(this));
objectGraph = ObjectGraph.create(new ActivityModule());
objectGraph.inject(this);
}
}
這裏是有跌破發行IM,機器人工作室不會看到injects關鍵字,所以我不能使用它。
的ActivityModule.java類如下:
@Module(
injects=
ListPageActivity.class
)
public class ActivityModule { }
同樣它在ActiveModule的關鍵字內噴射是不是在我的IDE認可。這裏是我的gradle編譯依賴:
dependencies {
compile files('libs/volley.jar')
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.0'
compile 'com.android.support:recyclerview-v7:21.0.0'
compile 'com.android.support:cardview-v7:21.0.0'
compile 'com.jakewharton:butterknife:6.0.0'
compile 'com.squareup:dagger:0.9.1'
}
只是好奇,爲什麼你用0.9.1而不是最新? – Alex 2014-12-19 05:08:46
我認爲這是我在J中心和maven中心查看的最新版本。你能給我最新的 – j2emanue 2014-12-19 05:26:42