将.java文件作为Java源文件包含在Android Studio中,以删除带有"J"的红色圆圈

Gor*_*ets 12 android gradle android-studio

今天更新android studio后我的源文件夹在项目标记如下("J"里面有一个红色圆圈标记).我该如何解决?我尝试了清除缓存,重新导入项目,使用gradlew clean build,但它没有帮助. 在此输入图像描述

的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 {
     ....
    }
}
Run Code Online (Sandbox Code Playgroud)

pyu*_*s13 4

我在玩这个的时候发现了一些神奇的解决方案

有两种可能的解决方案,您可以尝试使其正确(棘手的一种)

1.在你的build.gradle文件中替换它

java.srcDirs = ['src']   to   java.srcDirs = ['src/com']
Run Code Online (Sandbox Code Playgroud)

2.在里面创建一个子目录,src随意命名,我更喜欢这样java 命名

src > java
Run Code Online (Sandbox Code Playgroud)

将所有 java 包移入其中并更改

java.srcDirs = ['src']   to   java.srcDirs = ['src/java']
Run Code Online (Sandbox Code Playgroud)

这些都是棘手的解决方案。如果 java 源集是目录的根目录,但编译正常,则它不会考虑 java 源集,这可以被视为 Android Studio 中的一个错误src

完成所有必要的更改后,将您的项目与 gradle 同步,您的黄色目录将神奇地变成蓝色。

注意:即使你将它们放在 root 中,根据我的经验,也不会对编译产生影响。只有 Studio 不会在 IDE 中将它们标记为 java 源集。