Не удается найти символ @, созданный с помощью 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
и вуаля. Мой проект может быть построен снова!