Не удается найти символ @, созданный с помощью Dagger 2 и Proguard в модуле библиотеки

Я должен был представить свой ноутбук на работе. Сейчас проект не будет строить. Другие разработчики могут продолжить сборку с тем же штрафом, так что это должно быть проблемой среды.

Я использую Dagger 2 в своем полностью котлинском проекте, который имеет app модуль, а затем есть отдельный data модуль. При компиляции сборки релиза с включенным proguard я получаю следующую ошибку во всех сгенерированных классах data библиотечный модуль (это может произойти в app модуль тоже, но это не так далеко):

error: cannot find symbol
@Generated(
 ^
  symbol: class Generated
100 errors


FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':data:compileProductionReleaseJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

мой data модуля build.gradle Файл имеет это для зависимостей:

implementation 'com.google.dagger:dagger:2.14.1'
kapt 'com.google.dagger:dagger-compiler:2.14.1'
compileOnly 'org.glassfish:javax.annotation:10.0-b28'

Который так же, как мой app модуля

implementation 'com.google.dagger:dagger:2.14.1'
kapt 'com.google.dagger:dagger-compiler:2.14.1'
compileOnly 'org.glassfish:javax.annotation:10.0-b28'

Оба файла имеют apply plugin: 'kotlin-kapt' на вершине их.

Я попробовал чистое построение, лишил законной силы кэши и перезапустил Android Studio, но мне не повезло. Я также попытался добавить дополнительный kapt 'com.google.dagger:dagger-android-processor:2.14.1' к data модуль, но это тоже не сработало.

Есть идеи?

1 ответ

Решение

Из-за того, что мой ноутбук был очищен, и единственная версия Java была установлена 1.10Для установки Gradle использовалась эта версия JDK. (gradle -v показывает эту версию.

Чтобы исправить это, я использовал homebrew для загрузки Java 8.

brew tap caskroom/versions
brew cask install java8

И тогда, чтобы Gradle использовал версию 1.8, я поставил следующие строки в моем /etc/profile файл.

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home"
export PATH=$JAVA_HOME/bin:$PATH

Я тогда побежал source /etc/profile и вуаля. Мой проект может быть построен снова!

Другие вопросы по тегам