gradle - Gradle增量Java构建因 “cannot find Symbol error”而失败

标签 gradle android-gradle-plugin incremental-build

当我在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文件中是否存在 undefined symbol 。

使用调试日志,我发现在进行Java构建之前会删除类文件FragmentNavigationManager.class
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的输入,但这种情况没有发生,这会导致 undefined symbol 问题。清洁构建工作正常

最佳答案

我发现了问题
源文件路径为:src \ com \ microsoft \ office \ officemobilefragmentmanagerinfra \ FragmentNavigationManager.java

生成的类文件:中间体\ javac \ release \ compileReleaseJavaWithJavac \ classes \ com \ microsoft \ office \ officemobileFragmentManagerInfra \ FragmentNavigationManager.class

在源路径和生成的类路径的目录名称中存在大小写不匹配的情况,这是导致此问题的原因。源路径具有fragmentnavigationmanager而不是FragmentNavigationManager

我发现程序包名称为:com.microsoft.office.officemobile.FragmentManagerInfra.FragmentNavigationManager。更改目录名称以与源路径中的软件包名称匹配可解决该问题

这是可以预期的,因为完整构建可以正常工作,而Gradle增量构建只能失败吗?
在Windows 10上工作

关于gradle - Gradle增量Java构建因 “cannot find Symbol error”而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56559124/

相关文章:

android - 在 Android 中编译库时 TabLayout 崩溃

Android Studio : how do 'dependencies' work ? 如何更新库?

android - 如何在 gradle.build 中编写 build.finalisedBy.uploadArchives

tfs - 每晚构建应该是增量的吗?

gradle - 定义在另一个项目中用作依赖项的 Artifact

gradle - Gradle,shadowJar:在任务内部使用重定位

java - java.io.FileNotFoundException:app/libs/perfectjpattern-core-1.0.0.jar(无此文件或目录)

java - Gradle jar 包括来自依赖项的类

go - Hugo 增量构建 .某处是否存在未记录的开关?

git - Visual Studio : How to do incremental builds with MSBuild and Git