Dagger 2与Android数据绑定冲突

Dagger 2与Android数据绑定冲突,第1张

概述将 Dagger 2和 Android Data Binding添加到我的项目时,我得到一些下面的构建时错误.这似乎是一个已知问题(见 [1]或 [2]),因为我得到完全相同的错误.不幸的是我无法解决它们(就像其他人一样).有人对当前版本的Dagger 2和数据绑定有完整的工作设置,可以提供帮助吗? 这里的错误: C:\Users\Kai\AndroidStudioProjects\WearCo 将 Dagger 2和 Android Data Binding添加到我的项目时,我得到一些下面的构建时错误.这似乎是一个已知问题(见 [1]或 [2]),因为我得到完全相同的错误.不幸的是我无法解决它们(就像其他人一样).有人对当前版本的Dagger 2和数据绑定有完整的工作设置,可以提供帮助吗?

这里的错误:

C:\Users\Kai\AndroIDStudioProjects\WearCompass\mobile\src\main\java\com\comparilla\wearcompass\ui\navigation\InfoPanelFragment.java:12: error: package com.comparilla.wearcompass.databinding does not existimport com.comparilla.wearcompass.databinding.FragmentInfoPanelBinding;                                             ^C:\Users\Kai\AndroIDStudioProjects\WearCompass\mobile\src\main\java\com\comparilla\wearcompass\ui\navigation\InfoPanelviewmodel.java:8: error: cannot find symbolimport com.comparilla.wearcompass.BR;                                 ^  symbol:   class BR  location: package com.comparilla.wearcompassC:\Users\Kai\AndroIDStudioProjects\WearCompass\mobile\src\main\java\com\comparilla\wearcompass\MobileApplication.java:7: error: cannot find symbolimport com.comparilla.wearcompass.di.components.DaggerMobileApplicationComponent;                                               ^  symbol:   class DaggerMobileApplicationComponent  location: package com.comparilla.wearcompass.di.componentsC:\Users\Kai\AndroIDStudioProjects\WearCompass\mobile\src\main\java\com\comparilla\wearcompass\di\components\MobileActivityComponent.java:15: error: com.comparilla.wearcompass.common.services.headingService cannot be provIDed without an @Inject constructor or from an @ProvIDes-annotated method.    voID inject(InfoPanelFragment fragment);         ^      com.comparilla.wearcompass.common.services.headingService is injected at          com.comparilla.wearcompass.di.modules.ActivityModule.provIDeInfoPanelviewmodel(headingService,…)      com.comparilla.wearcompass.ui.navigation.InfoPanelviewmodel is injected at          com.comparilla.wearcompass.ui.navigation.InfoPanelFragment.mviewmodel      com.comparilla.wearcompass.ui.navigation.InfoPanelFragment is injected at          com.comparilla.wearcompass.di.components.MobileActivityComponent.inject(fragment)4 errors FailedFAILURE: Build Failed with an exception.* What went wrong:Execution Failed for task ':mobile:compileDeBUGJavaWithJavac'.> Compilation Failed; see the compiler error output for details.* Try:Run with --stacktrace option to get the stack trace. Run with --info or --deBUG option to get more log output.BUILD Failed

我的项目build.gradle:

// top-level build file where you can add configuration options common to all sub-projects/modules.buildscript {    repositorIEs {        jcenter()    }    dependencIEs {        classpath 'com.androID.tools.build:gradle:2.1.2'        classpath 'com.neenbedankt.gradle.plugins:androID-apt:1.8'        // NOTE: Do not place your application dependencIEs here; they belong        // in the indivIDual module build.gradle files    }}allprojects {    repositorIEs {        jcenter()    }}task clean(type: Delete) {    delete rootProject.buildDir}

应用程序build.gradle:

apply plugin: 'com.androID.application'apply plugin: 'com.neenbedankt.androID-apt'androID {    compileSdkVersion 24    buildToolsversion "23.0.3"    dataBinding {        enabled = true    }    defaultConfig {        applicationID "com.comparilla.wearcompass"        minSdkVersion 21        targetSdkVersion 24        versionCode 1        versionname "1.0"    }    buildTypes {        release {            MinifyEnabled false            proguardfiles getDefaultProguardfile('proguard-androID.txt'),'proguard-rules.pro'        }    }}dependencIEs {    compile filetree(include: ['*.jar'],dir: 'libs')    wearapp project(':wear')    testCompile 'junit:junit:4.12'    // to enable BuildConfig.DEBUG in the common library    // see https://stackoverflow.com/a/29163361/166229    releaseCompile project(path: ':common',configuration: 'release')    deBUGCompile project(path: ':common',configuration: 'deBUG')    compile 'com.androID.support:appcompat-v7:24.0.0'    compile 'com.Google.androID.gms:play-services-maps:9.0.2'    compile 'com.androID.support:design:24.0.0'    compile 'com.androID.support:preference-v14:24.0.0'    compile 'com.Google.dagger:dagger:2.5'    apt 'com.Google.dagger:dagger-compiler:2.5'    provIDed 'javax.annotation:Jsr250-API:1.0'}

我也尝试在apt’com.Google.dagger:dagger-compiler:2.5’中提供而不是apt,但没有成功.同时注释掉apply plugin:’com.neenbedankt.androID-apt’没有帮助(就像提供的资源中所建议的那样).

解决方法 我确实在同一个项目中配置了Dagger 2和DataBinding,它没有任何问题.

您在Dagger 2配置中确实有错误.您尝试注入的headingService无法创建,因为您没有为它提供@ProvIDes注释,并且该类在构造函数上没有@Inject注释.

总结

以上是内存溢出为你收集整理的Dagger 2与Android数据绑定冲突全部内容,希望文章能够帮你解决Dagger 2与Android数据绑定冲突所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1130582.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存