Я полностью измучен кинжалом 2 в не-Android приложение (IDE is IntelliJ IDEA).Кинжал 2 не генерирует компонент
build.gradle
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "net.ltgt.gradle:gradle-apt-plugin:0.9"
}
}
apply plugin: 'java'
apply plugin: 'net.ltgt.apt'
dependencies {
compile 'com.google.dagger:dagger:2.8'
apt 'com.google.dagger:dagger-compiler:2.8'
compileOnly 'javax.annotation:jsr250-api:1.0'
}
Компонент
@Component(modules = {MyModule.class}) public interface MyComponent {}
Модуль
@Module class MyModule {}
Главная
DaggerMyComponent component = DaggerMyComponent.builder().build();
Компилятор говорит
не может найти символ DaggerMyComponent
Абсолютно нет больше идей, что может быть не так :(
Кстати, если я бегу gradlew clean build --refresh-dependencies
, нет ошибки, все в порядке!
Но поскольку я снова использую «Проект перестройки» в IDE - ошибка. Возможно, ошибка IDEA (время, чтобы вернуться в Eclipse)?
И да, я добавил каталог с сгенерированными классами в качестве корня содержимого, поэтому среда IDE может видеть DaggerMyComponent
.
Ага, я уже включена обработка аннотаций, как ответы на другие ароматы этого вопроса предполагает его (например, [здесь] (http://stackoverflow.com/questions/33444356/is-there-any- способ создания-intellij-idea-recognising-dagger-2-generated-classes)), но подсказка о возможности делегирования build/run была для меня новой. Спасибо за внимание, чтобы это выяснить. – mous
Вы спасли мой день! Большое спасибо! – thenaoh