Dagger2生成的类在Android Studio中突然失踪

我已经在Android Studio中使用Dagger2好几个月了,但是今天突然间它停止了工作,并且给了我下面的错误

error: cannot find symbol return Dagger_Injector.builder() ^ symbol: variable Dagger_Injector location: class Initializer Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details. Note: Some input files use unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 1 error 

这是失败的代码

 @Singleton @Component(modules = {TestService.class, ServiceFactory.class}) public interface Injector { public final static class Initializer { public static Injector init(ApplicationLoader app, boolean bypassVerification) { return Dagger_Injector.builder() .testService(new TestService()) .serviceFactory(new ServiceFactory(app)) .build(); } } void inject(ApplicationLoader obj); } 

这是我的gradle信息

 ------------------------------------------------------------ Gradle 2.2.1 ------------------------------------------------------------ Build time: 2014-11-24 09:45:35 UTC Build number: none Revision: 6fcb59c06f43a4e6b1bcb401f7686a8601a1fb4a Groovy: 2.3.6 Ant: Apache Ant(TM) version 1.9.3 compiled on December 23 2013 JVM: 1.8.0_05 (Oracle Corporation 25.5-b02) OS: Mac OS X 10.10.2 x86_64 

这里是我的build.gradle的内容

 apply plugin: 'com.android.application' apply plugin: 'robolectric' apply plugin: 'com.neenbedankt.android-apt' android { compileSdkVersion 21 buildToolsVersion '21.1.0' defaultConfig { applicationId "com.test" minSdkVersion 11 targetSdkVersion 21 versionCode 1 versionName "1.0" testInstrumentationRunner "com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } productFlavors { } lintOptions { abortOnError false } sourceSets { androidTest { setRoot('src/androidTest') } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } dexOptions { preDexLibraries = false } packagingOptions { exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' } } tasks.withType(Test) { include '**/*Test.class' exclude '**/espresso/**/*.class' // configure max heap size of the test JVM maxHeapSize = "2048m" } dependencies { androidTestCompile 'junit:junit:4.12' androidTestCompile('org.robolectric:robolectric:2.4') { exclude group: 'commons-logging', module: 'commons-logging' exclude group: 'org.apache.httpcomponents', module: 'httpclient' } compile 'javax.servlet:javax.servlet-api:3.0.1' compile fileTree(dir: 'libs', include: ['*.jar']) compile files('libs/renderscript-v8.jar') compile files('libs/jsonic-1.2.0.jar') compile 'com.android.support:appcompat-v7:20.+' compile 'com.google.android.gms:play-services:3.2' compile 'com.squareup.retrofit:retrofit:1.6.1' compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0' compile 'com.squareup.okhttp:okhttp:2.0.0' compile 'com.squareup:otto:1.3.5' compile 'com.commonsware.cwac:merge:1.0.2' compile 'com.j256.ormlite:ormlite-android:4.48' compile 'com.android.support:support-v4:20.0.0' compile 'io.nlopez.smartlocation:library:2.0.8' compile 'com.google.dagger:dagger:2.0-SNAPSHOT' apt 'com.google.dagger:dagger-compiler:2.0-SNAPSHOT' compile 'org.glassfish:javax.annotation:10.0-b28' compile 'com.github.amlcurran.showcaseview:library:5.0.0' compile 'com.edmodo:cropper:1.0.1' } 

任何帮助表示赞赏。

Solutions Collecting From Web of "Dagger2生成的类在Android Studio中突然失踪"

所以看起来由于某种原因,在生成的组件类名称中没有更多的下划线。 只要看看你的build/generated/source/apt文件夹,看看它真的改变了这种方式。

Dagger_InjectorreplaceDagger_Injector修复它

在我的情况下,我使用领域,由于不匹配,我无法获得自动生成的DaggerComponent。

我replace了

 classpath "io.realm:realm-gradle-plugin:1.2.0" 

 classpath "io.realm:realm-gradle-plugin:3.1.2" 

并应用该插件

 apply plugin: 'realm-android' 

在应用级别的gradle文件中