Dagger2 зависимость-Gradle


Я пытаюсь добавить Dagger2 в свой проект в Android Studio, но я не могу найти правильную зависимость для вставки в сборку.градля. Не могли бы вы помочь и выслать мне правильную линию?

4 59

4 ответа:

установка Dagger 2 на Android Studio 2

// Application build.gradle
dependencies {
    compile 'com.google.dagger:dagger:2.4'
    annotationProcessor "com.google.dagger:dagger-compiler:2.4"
}

Репозиториев Maven:

найти последние версии вышеуказанных зависимостей в репозитории Maven:


Примечания: Android Studio

старые версии Android Studio need android-apt для аннотации обработка.

// Project build.gradle
buildscript {
    dependencies {
        // Assists in working with annotation processors for Android Studio.
        // No longer needed with Android Studio 2.2+
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
    }
}
apply plugin: 'com.neenbedankt.android-apt'

и

// Application build.gradle
dependencies {
    compile 'com.google.dagger:dagger:2.4'
    apt "com.google.dagger:dagger-compiler:2.4"
}

Примечания: Кинжал

для Кинжала javax.annotation нужен @Generated аннотация, используемая в коде, сгенерированном кинжалом (см. github.com/google/dagger/issues/95). аннотация не включена в Android API jar, поэтому вам нужно будет использовать одну из этих библиотек (посмотреть различия):

// Application build.gradle
dependencies {
    compile 'javax.annotation:jsr250-api:1.0'
}

вам больше не нужен плагин android-apt, все функциональные возможности, которые ранее были предоставлены android-apt теперь доступны в Android Gradle плагин версии 2.2

https://bitbucket.org/hvisser/android-apt/wiki/Migration

обновить плагин Gradle до

classpath 'com.android.tools.build:gradle:2.2.0'

и Кинжал зависимости к

compile 'com.google.dagger:dagger:2.4'
annotationProcessor 'com.google.dagger:dagger-compiler:2.4'

Ура!

dependencies {
    compile 'com.google.dagger:dagger:2.0-SNAPSHOT'
}

приложения/строить.gradle

и

allprojects {
    repositories {
        ...
        maven {
            url "https://oss.sonatype.org/content/repositories/snapshots"
        }
    }
}

в build.gradle вашего проекта.

у меня были некоторые проблемы с этим сегодня. Вот что работало для меня с последними версиями на эту дату с помощью Android Studio 2.0 preview 8:

buid.gradle (модуль:приложение)

apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'
android {
    compileSdkVersion 23
    buildToolsVersion '23.0.2'
    defaultConfig {
        applicationId 'com.example.android.redacted.app'
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    repositories {
        mavenCentral()
    }
    productFlavors {
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:23.1.1'
    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'

}

построить.Gradle в (проект проекта):

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

allprojects {
    repositories {
        jcenter()
        mavenCentral()
        maven {
            url 'https://oss.sonatype.org/content/repositories/snapshots/'
        }
    }

}