在Android Studio中将.java文件包含为Java源代码以消除上面带有“J”的红色圆圈

14
今天在更新Android Studio后,项目中的源代码文件夹被标记为下面所示(红色圆圈内有“J”字母)。我该如何修复它?我尝试了清除缓存、重新导入项目、使用gradlew clean build,但都没有帮助。 enter image description here build.gradle
apply plugin: 'android'
apply plugin: 'android-apt'

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.3"


    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
    }

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
    lintOptions {
        abortOnError false
    }
}

def AAVersion = '3.0.1'
dependencies {
   ......
}

apt {
    arguments {
     ....
    }
}

你升级了Gradle和Android Gradle插件的版本吗?如果你在更新后打开项目,它应该会警告你并提供修复方案。 - Scott Barta
是的,我做到了。项目构建成功。 - Gorets
我注意到你的项目没有典型的Gradle目录结构。 请问您能否将您的模块的build.gradle文件添加到您的问题中? - Scott Barta
6个回答

4
我在尝试处理这个问题时找到了一些神奇的解决方案。
有两种可能的解决方案可供尝试以使其正确(不太容易)。
1. 在您的build.gradle文件中替换此内容。
java.srcDirs = ['src']   to   java.srcDirs = ['src/com']

2.在src中创建一个子目录,可以自己决定名称,我喜欢将其命名为java

src > java

将所有的Java包移动到其中,并更改
java.srcDirs = ['src']   to   java.srcDirs = ['src/java']

这些是棘手的解决方案。如果Java源集是src目录的根目录,那么Android Studio将不会考虑它,但编译是正常的,这可能被视为Android Studio的一个错误。
在进行所有必要的更改后,使用gradle同步项目,您的黄色文件夹将神奇地变成蓝色。
请注意:即使在根目录中,它们也不会对编译产生影响,根据我的经验。只有Studio不会将它们标记为Java源集在IDE中。

4

我解决了这个问题,只需从Android Studio中关闭项目并从最近的项目中删除该项目。重新导入项目即可解决。如果有人遇到Android项目的问题,可以尝试这样做。谢谢。


2
关闭Android Studio并从项目结构中删除.idea和.gradle文件夹,然后再次启动Studio。 - Ramakant

3
  1. 在Android Studio中打开项目结构(Windows上按Ctrl+Alt+Shift+S,macOS上按+;)。
  2. 在窗口左侧的模块标题下方,查看右侧,您将看到三个选项卡之一是“Sources”,选择它。
  3. 在那里,您将找到导入或自己创建的项目结构。
  4. 进入其src文件夹,并等待对话框上方的源链接与其他许多链接一起可用,抓住它。
  5. 应用并确定。
  6. 问题解决了。

看起来他们在最新版本的AS中进行了更改,因为我找不到它(但我也在使用Mac - 这可能会有所改变)。 - vanomart

1
  1. 打开 build.gradle 文件(在模块中而不是项目中的那个)。
  2. 当你打开它时,你会看到“此文件夹不属于 Gradle 项目,请确保它已经在 settings.gradle 中注册。”的提示信息以及右上角的“现在添加...”链接。
  3. 点击“现在添加”,Gradle 将会完成它的工作。

1

1
如果您在切换分支或拉取后遇到此问题,则可以通过进入“文件”>“无效缓存/重启”来修复它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接