2015-04-08 10 views
14

मैं अब महीनों लेकिन आज अचानक यह काम करना बंद कर के लिए एंड्रॉयड स्टूडियो में Dagger2 का उपयोग कर किया गया है से लापता के सभी मुझे निम्न त्रुटि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 

और ज है ere मेरी 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' 
} 

किसी भी मदद की सराहना की है।

+1

यह लगता है डैगर 2 में कुछ परिवर्तन होने के लिए अपने आप। मैं वही समस्याएं देख रहा हूं हालांकि मैंने कल से कुछ भी नहीं बदला है। दुर्भाग्यवश, डैगर 2 अभी भी एक स्नैपशॉट है, इसलिए यह बदल सकता है:/ – Tomik

+0

यहां वही समस्या है। मैंने डैगर के निश्चित 2.0 संस्करण का उपयोग करने का भी प्रयास किया, लेकिन यह अभी भी – simekadam

उत्तर

20

तो ऐसा लगता है कि जेनरेट किए गए घटक वर्गों के नामों में कोई और अंडरस्कोर नहीं है। बस इसे देखने के लिए अपने build/generated/source/apt फ़ोल्डर में देखें।

DaggerInjector आदि

+0

विफल रहा है हां, यह सही है। उन्होंने इसे रिलीज संस्करण में बदल दिया। हालांकि प्रलेखन [http://google.github.io/dagger/](http://google.github.io/dagger/) अभी भी 'Dagger_' उपसर्ग के साथ पुराने तरीके का उल्लेख करता है। 'घटक' के जावाडोक ने 'डैगर' उपसर्ग का उल्लेख किया है। – Tomik

+0

हम्मम्म ... काफी अजीब, जैसा कि इस मुद्दे में https://github.com/google/dagger/issues/58 - वे सामूहिक रूप से अंडरस्कोर का उपयोग करने पर सहमत हुए हैं। वैसे भी आप सही हैं। अंडरस्कोर को हटाने से इसे हल किया जाता है। – nemo

+0

उन्होंने कुछ घंटों पहले डैगर 2.0 (गैर-स्नैपशॉट) जारी किया है। कुछ एपीआई बदल गया है। http://www.reddit.com/r/androiddev/comments/31ufbh/dagger_20_has_been_released/ –

1

साथ Dagger_Injector की जगह मेरे मामले में मैं दायरे उपयोग कर रहा था और उपयुक्त बेमेल की वजह से मैं स्वत: जनरेट की DaggerComponent प्राप्त करने में सक्षम नहीं किया जा रहा था द्वारा इसे ठीक करें।

मैं

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

साथ

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

प्रतिस्थापित और एप्लिकेशन-स्तरीय Gradle फाइल में प्लगइन

apply plugin: 'realm-android' 

लागू किया

संबंधित मुद्दे