Android Studio 使用 JNI 函数突出显示所有 Java 类

Android Studio highlights all Java classes with JNI functions

自从更新到 Android Studio 4.1.0 稳定版后,我所有 类 使用 JNI 实现的函数都被标记为红色并带有代码高亮。

下面你可以看到我的项目结构。有几个库项目和主要的 ck-learn 项目。所有带有本机代码的 类 都放在 jni-wrappers 项目中,而 CMakeLists.txt 位于使用 jni-wrappers 的顶级库项目 peshka 中(见屏幕截图)。

语法在 Android Studio 4.0.2 中照常着色。所有 类 在 peshka 项目中都是可见的。但现在它们以红色突出显示,因为它们未被发现。但是项目像往常一样编译。这只是一个视觉问题。

如果我打开一些红色的文件,会有一个警告:

This .java file is outside of Java source roots and won't be added to the classpath.

源根是标准的 (src\main\java),在 AS 4.0.2 中一切正常。

有人可以帮忙解决这个问题吗?

仔细检查您的 sourceSets 配置。我们遇到了类似的问题,结果证明是由于主模块指向另一个模块内的源。 Android Studio 4.0 接受这样的配置,但 Android Studio 4.1 不接受。

OP 从评论中确认,这是由 bug in Android Studio 4.1.0, which gets partially fixed in Android Studio 4.1.1. The full fix is still in progress. More details on the symptoms and workaround can be found from this bug.

引起的