Skip to content

Dagger 2 swallows errors #306

Closed
Closed

Description

Hi, i have an unexpected problem with my setup. Also to inform you, i heavily use the official android databinding in my project (in 10+ activities and 20+ fragments).

my app build.gradle is something like this:

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

android {
    compileSdkVersion 23
    buildToolsVersion '23.0.2'

    dataBinding {
        enabled = true
    }

    dexOptions {
        incremental true
        javaMaxHeapSize "4g"
    }

    defaultConfig {
        applicationId "com.charbgr"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1"

        //Espresso
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

        //RenderScript
        renderscriptTargetApi 19
        renderscriptSupportModeEnabled true

        multiDexEnabled true
    }

    packagingOptions {

        //Espresso excludes
        exclude 'META-INF/DEPENDENCIES.txt'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/dependencies.txt'
        exclude 'META-INF/LGPL2.1'
        exclude 'LICENSE.txt'
        //Espresso excludes

    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

}



dependencies {

    ...

    compile 'com.google.dagger:dagger:2.0.2'
    apt 'com.google.dagger:dagger-compiler:2.0.2'
    provided 'org.glassfish:javax.annotation:10.0-b28'
}

the root build.gradle is this one:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0-alpha5'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

In my code, i make an enforced error(i know that i cannot create an object with the same method name in a module). The enforced error looks like this:

@Module
public class AndroidModule {

    @Provides
    public Foo providesFoo(String bar) {
        return new Foo(bar);
    }

    @Provides
    public Foo providesFoo(String bar, String unusedArgument) {
        return new Foo(bar);
    }
}

For some reason, when i build my project i get 100+ errors from databinding with this output:
cannot find symbol class BR

and dagger doesn't prints this error
Cannot have more than one @Provides method with the same name in a single module

Seems that Dagger "swallows" this error or the databinding overrides some behaviour of the annotation processor tool(apt).

Do you know what's going on?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions