Зависимость Dagger2 — Gradle

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


person Dabler    schedule 22.02.2015    source источник


Ответы (6)


Установка 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 ‹ 2.2

В более старых версиях Android Studio для обработки аннотаций требуется 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"
}

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

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

// Application build.gradle
dependencies {
    compile 'javax.annotation:jsr250-api:1.0'
}
person bcorso    schedule 10.06.2015
comment
компиляция 'org.glassfish:javax.annotation:10.0-b28' - это то, что сделало это для меня, иначе я продолжал получать NPE от gradle. Почему разработчики не упомянули об этой зависимости? Спасибо еще раз! - person George; 22.08.2015
comment
Нужны ли мне javax.annotations, если я использую java 7? - person Anton Shkurenko; 11.10.2015
comment
@AntonShkurenko Вам понадобится для всех проектов Android, поскольку Android использует Java 6. См. github.com /google/dagger/issues/95 - person bcorso; 11.10.2015
comment
Вам больше не нужен плагин apt, пожалуйста, проверьте мой обновленный ответ ниже - person rahulrv; 11.10.2016
comment
Android Studio предлагает перейти на реализацию «com.google.dagger:dagger:2.4» вместо компиляции - person mding5692; 28.10.2018

Вам больше не нужен плагин 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'

и Dagger зависимости от

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

Ваше здоровье!

person rahulrv    schedule 26.09.2016

У меня были некоторые проблемы с этим ранее сегодня. Вот что у меня сработало с последними версиями на эту дату, используя предварительную версию Android Studio 2.0 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'

}

build.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/'
        }
    }

}
person Jon Teets    schedule 29.01.2016

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

в вашем приложении/build.gradle

а также

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

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

person slnowak    schedule 25.02.2015
comment
Текущая последняя доступная сборка — 2.1-SNAPSHOT (так что вы можете использовать compile 'com.google.dagger:dagger:2.1-SNAPSHOT' ) - person Francesco Pez; 04.05.2015
comment
Dagger 2.0 теперь доступен в Maven Central. Не используйте моментальные снимки, если вы не готовы иметь дело с поломкой. - person Veeti; 05.05.2015

Добавьте эти последние зависимости в ваше приложение/build.gradle с последней версией Android Studios 3.0.

dependencies {

//Dagger
implementation 'com.google.dagger:dagger:2.24'
implementation 'com.google.dagger:dagger-android:2.24'
implementation 'com.google.dagger:dagger-android-support:2.24'

}

Простая реализация Dagger 2 Dagger 2 с MVP

person ramkrishna kushwaha    schedule 26.07.2019

Обновление последней версии зависимостей Dagger-2

Текущая версия: 2.36. Вы можете найти последние версии всех перечисленных ниже зависимостей здесь .

Для основных зависимостей кинжала,

dependencies {
  implementation 'com.google.dagger:dagger:2.36'
  annotationProcessor 'com.google.dagger:dagger-compiler:2.36'
}

Для зависимостей Android,

implementation 'com.google.dagger:dagger-android:2.36'
implementation 'com.google.dagger:dagger-android-support:2.36'
annotationProcessor 'com.google.dagger:dagger-android-processor:2.36'

Если в вашем проекте используется Kotlin, используйте kapt вместо annotationProcessor. Чтобы использовать kapt, вам нужно добавить плагин kotlin-kapt в свой Gradle. .

person Anand    schedule 01.06.2021