如何使用 Android Studio Experimental Grade 插件配置多个 java 源目录?

How to configure multiple java source directories using Android Studio Experimental Grade plugin?

使用带有 Experimental Grade 插件 0.7.2 的 Android Studio 2.1.1,我正在尝试向模块添加另一个 Java 源代码目录。这是模块 Gradle 设置中的相关部分:

android.sources {
    main {
        java.source {
            //srcDir "src/java"
            //srcDir "../../JavaBindings/java"
            //srcDirs += "src"
            srcDirs += "../../JavaBindings/java"  <--- DOES NOT WORK
        }
        jni.source {
            srcDirs += "../../JavaBindings/jni"  <--- THIS WORKS
        }
    }
}

在查看 Google 和 Stack Overflow 之后,我尝试了多种不同的语法,但没有成功。 Android Studio 项目结构UI 中的app/java 目录仅显示src/java 中的内容,不包含../../JavaBindings/java.

中的内容

但是对于 app/jni 目录,它有效:src/jni../../JavaBindings/jni 中的内容都会显示。

看了 source code 的 Gradle 实验插件后,我终于明白了:

java.source.srcDirsjni.source.srcDirs 的行为不同:对于 JNI 情况,即使您定义了 jni.source.srcDirs 设置,默认情况下始终包含 src/main/jni,但 Java 的情况并非如此。

所以正确的语法变成:

android.sources {
    main {
        java.source {
            srcDirs += "src/main/java"
            srcDirs += "../../JavaBindings/java"
        }
        jni.source {
            srcDirs += "../../JavaBindings/jni"
        }
    }
}