Не удается добавить зависимость Dagger 2 к java-модулю

Я пытаюсь разделить свое приложение для Android на несколько модулей. Например, я хочу иметь 2 дополнительных модуля - Core и ViewModels. Оба они являются чистыми java-модулями. Однако у меня возникают проблемы при добавлении зависимостей Dagger 2 к этим модулям Java. Вот файл сборки одного из модулей

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"

Однако, когда я синхронизирую градиент, я получаю следующую ошибку

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

Любые идеи, почему это происходит?


person kyurkchyan    schedule 13.04.2018    source источник
comment
Я думал, что android-apt устарел в Android Studio 3.0+?   -  person EpicPandaForce    schedule 16.04.2018
comment
Да, именно :), однако это все еще действует в java, я сейчас опубликую ответ, я решил проблему   -  person kyurkchyan    schedule 17.04.2018


Ответы (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 успешно сгенерировал необходимый код, и приложение заработало как по волшебству.

person kyurkchyan    schedule 17.04.2018