【问题标题】:Can't add Dagger 2 dependency to java module无法将 Dagger 2 依赖项添加到 java 模块
【发布时间】:2018-04-17 19:08:05
【问题描述】:

我正在尝试将我的 android 应用程序分成几个模块。例如,我想要 2 个额外的模块 - Core 和 ViewModels。它们都是纯java模块。但是,在将 Dagger 2 依赖项添加到这些 java 模块时我遇到了麻烦。这是其中一个模块的构建 gradle 文件

apply plugin: 'java-library'


dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.google.dagger:dagger:2.15'
    annotationProcessor 'com.google.dagger:dagger-compiler:2.15'
    implementation 'org.greenrobot:eventbus:3.1.1'
}

sourceCompatibility = "1.7"
targetCompatibility = "1.7"

但是,当我同步 gradle 时出现以下错误

Could not find method classpath() for arguments [com.neenbedankt.gradle.plugins:android-apt:1.8] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
Open File

任何想法为什么会发生这种情况?

【问题讨论】:

  • 我认为 android-apt 在 Android Studio 3.0+ 中已被弃用?
  • 是的,完全正确:) 但是它在java中仍然有效,我现在将发布答案,我已经解决了问题

标签: java android dagger-2 java-module


【解决方案1】:

我已经解决了这个问题。这是我最终的自定义模块build.gradle 的样子

plugins {
    id "net.ltgt.apt" version "0.15"
}
apply plugin: 'java-library'



dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.google.dagger:dagger:2.15'
    apt 'com.google.dagger:dagger-compiler:2.13'
}

sourceCompatibility = "1.8"
targetCompatibility = "1.8"

Dagger 2 成功生成了必要的代码,应用程序像魔术一样运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-30
    • 1970-01-01
    • 1970-01-01
    • 2019-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多