Dagger2依赖 - Gradle

Dab*_*ler 64 android android-gradle-plugin dagger-2

我正在尝试将Dagger2添加到Android Studio中的项目中,但是我无法找到适当的依赖项来粘贴build.gradle.你能帮忙并给我一个合适的路线吗?

bco*_*rso 140

在Android Studio 2上安装Dagger 2

// Application build.gradle
dependencies {
    compile 'com.google.dagger:dagger:2.4'
    annotationProcessor "com.google.dagger:dagger-compiler:2.4"
}
Run Code Online (Sandbox Code Playgroud)

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'
Run Code Online (Sandbox Code Playgroud)

// Application build.gradle
dependencies {
    compile 'com.google.dagger:dagger:2.4'
    apt "com.google.dagger:dagger-compiler:2.4"
}
Run Code Online (Sandbox Code Playgroud)

注:匕首<2.1

对于Dagger <2.1-SNAPSHOT ,Dagger生成的代码中使用javax.annotation@Generated注释需要(请参阅github.com/google/dagger/issues/95).注释不包含在Android API jar中,因此您需要使用其中一个库(请参阅差异):

// Application build.gradle
dependencies {
    compile 'javax.annotation:jsr250-api:1.0'
}
Run Code Online (Sandbox Code Playgroud)


rah*_*lrv 7

你不再需要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'
Run Code Online (Sandbox Code Playgroud)

和Dagger的依赖关系

compile 'com.google.dagger:dagger:2.4'
annotationProcessor 'com.google.dagger:dagger-compiler:2.4'
Run Code Online (Sandbox Code Playgroud)

干杯!


sln*_*wak 5

dependencies {
    implementation 'com.google.dagger:dagger:2.0-SNAPSHOT'
}
Run Code Online (Sandbox Code Playgroud)

在你的app/build.gradle中

allprojects {
    repositories {
        ...
        maven {
            url "https://oss.sonatype.org/content/repositories/snapshots"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在项目的build.gradle中.


小智 5

我今天早些时候遇到了一些麻烦.以下是使用Android Studio 2.0预览版本8的最新版本对我有用的信息:

buid.gradle(模块:app)

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'

}
Run Code Online (Sandbox Code Playgroud)

build.gradle(Project: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/'
        }
    }

}
Run Code Online (Sandbox Code Playgroud)