Gradle Инкрементная сборка Java завершается с ошибкой «не удается найти ошибку символа» - PullRequest
0 голосов
/ 12 июня 2019

Сбой сборки, когда я внес изменение в файл Java

Плагин Android Gradle: 3.2.1 Версия Gradle: 4.6

Ниже приведен снимок ошибки:

17:58:31.131 [ERROR] [system.err] symbol: class FragmentNavigationManager
17:58:31.132 [ERROR] [system.err] location: package com.microsoft.office.officemobile.FragmentManagerInfra
17:58:31.138 [ERROR] [system.err] D:\Office\dev\officemobile\android\Java\src\com\microsoft\office\officemobile\ActionsTab\ActionsAdapter.java:45: error: cannot find symbol
17:58:31.138 [ERROR] [system.err] import com.microsoft.office.officemobile.KaizalaPhoneauth.KaizalaPhoneAuthManager;

Я проверил наличие неопределенных символов в файле FragmentNavigationManager.java внутри источников.

Используя журналы отладки, я обнаружил, что файл класса FragmentNavigationManager.class удаляется перед сборкой java

gradle: 17:58:28.630 [DEBUG] [org.gradle.api.internal.file.delete.Deleter] Deleting d:\office\build\droidarm\ship\officemobile\android\java\intermediates\javac\release\compileReleaseJavaWithJavac\classes\com\microsoft\office\officemobile\FragmentManagerInfra\FragmentNavigationManager.class

После удаления вышеуказанного класса при выполнении инкрементной сборки Java, FragmentNavigationManager.java должен быть передан в качестве ввода для javac, но этого не происходит, что вызывает неопределенную проблему с символами. Чистая сборка работает отлично

1 Ответ

0 голосов
/ 20 июня 2019

Я обнаружил проблему. Путь к исходному файлу: src \ com \ microsoft \ office \ officemobile фрагментmanagerinfra \ FragmentNavigationManager.java

Файл сгенерированного класса: промежуточные файлы \ javac \ release \ compileReleaseJavaWithJavac\ classes \ com \ microsoft \ office \ officemobile FragmentManagerInfra \ FragmentNavigationManager.class

Произошло несоответствие имени каталога в пути к исходному и сгенерированному пути к классам, что и является причиной проблемы.Исходный путь имеет FragmenNavigationManager вместо FragmentNavigationManager

. Я обнаружил, что имя пакета: com.microsoft.office.officemobile.FragmentManagerInfra.FragmentNavigationManager.Изменение имени каталога в соответствии с именем пакета в исходном пути решает проблему

Ожидается ли это, так как полная сборка работает нормально, а добавочная сборка Gradle только дает сбой?Работа на Windows 10

...