我正在使用android studio 3的最新測試版(目前爲beta 4),我似乎無法得到它來生成所需的匕首類。DaggerApplicationComponent未編譯
從我身邊我創建了一個空的項目。然後我重新命名活動以匹配匕首筆記,YourActivity。請參閱「注射活動對象」 https://google.github.io/dagger/android.html,這說明這一點:
@Subcomponent(modules = ...)
public interface YourActivitySubcomponent extends AndroidInjector<YourActivity> {
@Subcomponent.Builder
public abstract class Builder extends AndroidInjector.Builder<YourActivity> {}
}
@Module(subcomponents = YourActivitySubcomponent.class)
abstract class YourActivityModule {
@Binds
@IntoMap
@ActivityKey(YourActivity.class)
abstract AndroidInjector.Factory<? extends Activity>
bindYourActivityInjectorFactory(YourActivitySubcomponent.Builder builder);
}
@Component(modules = {..., YourActivityModule.class})
interface YourApplicationComponent {}
@ActivityScope
@ContributesAndroidInjector(modules = { /* modules to install into the subcomponent */ })
abstract YourActivity contributeYourActivityInjector();
public class YourApplication extends Application implements HasActivityInjector {
@Inject DispatchingAndroidInjector<Activity> dispatchingActivityInjector;
@Override
public void onCreate() {
super.onCreate();
DaggerYourApplicationComponent.create()
.inject(this);
}
@Override
public AndroidInjector<Activity> activityInjector() {
return dispatchingActivityInjector;
}
}
//the renamed activity
public class YourActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
//added this line
AndroidInjection.inject(this);
super.onCreate(savedInstanceState);
}
}
我還添加了從該網頁下面的gradle這個構建的應用程序文件:
dependencies {
compile 'com.google.dagger:dagger-android:2.11'
compile 'com.google.dagger:dagger-android-support:2.11' // if you use the support libraries
annotationProcessor 'com.google.dagger:dagger-android-processor:2.11'
}
,因爲我還沒有看到任何事情我試着更新編譯成執行與仍然沒有運氣,如果你很好奇,看起來像:
dependencies {
implementation 'com.google.dagger:dagger-android:2.11'
implementation 'com.google.dagger:dagger-android-support:2.11' // if you use the support libraries
annotationProcessor 'com.google.dagger:dagger-android-processor:2.11'
}
而且,我已經找到了默認設置,我可以打開默認Build
- >Compiler
- >Annotation Processors
啓用它。我在創建新項目之前做了這個。
經過這一切,似乎沒有任何工作。這在android studio 3.x
中被破壞了嗎?如果不是,你是如何得到它的工作?
感謝, 凱利
當我嘗試構建時,每次出現錯誤都是因爲找不到'DaggerYourApplicationComponent'。並且如果註釋掉編碼然後編譯。它建立。之後我會在'DaggerYourApplicationComponent'這一行發表評論,看看它無法找到它並且無法構建。 – KellyTheDev
清理項目文件後,我的ApplicationComponent也會刪除並給出錯誤。但是當我的所有提供者和其他人都是正確的時,它會在第一次構建之後創建 – mbakgun
這就是我發現的@mbakgun – KellyTheDev