gpt4 book ai didi

android - Dagger 2 : Error about subcomponents, 但我的应用程序中没有任何子组件

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:19:00 25 4
gpt4 key购买 nike

我正在尝试在我的应用中使用 Dagger 2。我不断收到此错误:

Error:Execution failed for task ':app:compileDebugJavaWithJavac'. java.lang.IllegalArgumentException: @dagger.Module does not define an element subcomponents()

我根本不在应用程序中使用子组件,所以我不知道为什么会出现此错误。我有一个模块和一个组件。模块:

@Singleton
@Module

public class ApplicationModule {

private final WSTApplication application;

public ApplicationModule(WSTApplication application) {
this.application = application;
}

@Provides
public WSTApplication application() {
return this.application;
}

@Provides
public Context applicationContext() {
return this.application;
}

@Provides
Realm provideRealm() {
return Realm.getDefaultInstance();
}

@Provides
RealmHelper providesRealmHelper(final Realm realm) {
return new RealmHelper(realm);
}

@Provides
@Singleton
public WorkoutPresenter providesWorkoutPresenter(final RealmHelper helper) {
return new WorkoutPresenter(helper);
}

还有我的组件:

@Singleton
@Component(modules={ApplicationModule.class})
public interface ApplicationComponent {

void inject (MainActivity activity);

WSTApplication application();

Context applicationContext();

Realm provideRealm();

RealmHelper providesRealmHelper(Realm realm);

WorkoutPresenter providesWorkoutPresenter(RealmHelper helper);

}

这是我的应用程序的 onCreate:

@Override
public void onCreate() {
super.onCreate();

component = DaggerApplicationComponent.builder()
.applicationModule(new ApplicationModule(this))
.build();
}

我也无法让 DaggerApplicationComponent 停止显示为红色,但我认为这是因为这个奇怪的子组件错误导致项目实际上并未构建?我试过使用下划线 (Dagger_ApplicationComponent),但这没有用。

我试过谷歌,但我发现的只是关于如何在 Dagger 中使用子组件的指南,这不是我想要的。我不想使用子组件。我只想使用一个组件。

此外,为了以防万一,这是我放入 build.gradle 文件中的内容:

在项目构建脚本中:

classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'

并且在应用级别的 build.gradle 中:

apply plugin: 'com.neenbedankt.android-apt'

然后在依赖项中向下:

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:design:24.2.1'
compile 'com.google.dagger:dagger:2.1'
compile 'com.android.support:support-v4:24.2.1'
testCompile 'junit:junit:4.12'
apt 'com.google.dagger:dagger-compiler:2.7'
provided 'org.glassfish:javax.annotation:10.0-b28'
}

感谢任何能帮助我的人!我是 Dagger2 的新手,甚至在阅读了几本初学者指南之后,我仍然没有完全理解它(我希望尝试使用它会让事情变得更清楚......到目前为止它就像漏油一样清晰)。很可能我犯了一个愚蠢的初学者错误,提前道歉。

最佳答案

为什么使用 com.neenbedankt.android-apt?据我所知it is obsolete now .

Dagger GitHub page解释了如何在 Android 项目中使用它。

dependencies {
compile 'com.google.dagger:dagger:2.x'
annotationProcessor 'com.google.dagger:dagger-compiler:2.x'
}

在这里你可以找到Dagger releases对于依赖项版本。

我不确定它是否能立即解决您的问题,但您一定要试一试。

关于android - Dagger 2 : Error about subcomponents, 但我的应用程序中没有任何子组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42053787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com