如何使用Android Studio实验等级插件配置多个java源目录?

时间:2016-06-06 17:18:00

标签: android android-studio android-ndk gradle-experimental

将Android Studio 2.1.1与实验级插件0.7.2一起使用,我正在尝试将另一个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项目结构用户界面中的app/java目录仅显示src/java中的内容,但不包含../../JavaBindings/java中的内容。

但对于app/jni目录,它可以正常运行:src/jni../../JavaBindings/jni中的内容都显示出来。

1 个答案:

答案 0 :(得分:1)

在查看Gradle Experimental插件的source code之后,我最终弄明白了:

java.source.srcDirsjni.source.srcDirs的行为不一样:对于JNI案例,即使您定义了jni.source.srcDirs设置,默认情况下始终会包含src/main/jni,但是#39;不是Java案例的情况。

所以正确的语法变为:

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