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

66
Dabler 22 Фев 2015 в 21:39

5 ответов

Лучший ответ

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

Примечания: Dagger <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'
}
142
bcorso 13 Окт 2016 в 03:25

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

Build.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 (Проект: proj):

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

}
5
Jon Teets 29 Янв 2016 в 19:05

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

Ура!

7
rahulrv 26 Сен 2016 в 00:31

Добавьте эти последние зависимости в свой app / 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

0
ramkrishna kushwaha 26 Июл 2019 в 12:06
dependencies {
    implementation 'com.google.dagger:dagger:2.0-SNAPSHOT'
}

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

А также

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

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

5
AMK 25 Авг 2019 в 06:05