将
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 exist
- import 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 symbol
- import com.comparilla.wearcompass.BR;
- ^
- symbol: class BR
- location: package com.comparilla.wearcompass
- C:\Users\Kai\AndroidStudioProjects\WearCompass\mobile\src\main\java\com\comparilla\wearcompass\MobileApplication.java:7: error: cannot find symbol
- import com.comparilla.wearcompass.di.components.DaggerMobileApplicationComponent;
- ^
- symbol: class DaggerMobileApplicationComponent
- location: package com.comparilla.wearcompass.di.components
- C:\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
- Failed
- FAILURE: 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’没有帮助(就像提供的资源中所建议的那样).