0

使用带有 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 上环顾四周后,我尝试了许多不同的语法,但都没有成功。app/javaAndroid Studio 项目结构 UI 中的目录仅显示其中的内容src/java,不包括../../JavaBindings/java.

然而,对于app/jni目录,它可以工作:里面的内容src/jni../../JavaBindings/jni显示的内容。

4

1 回答 1

1

在查看了 Gradle Experimental 插件的源代码后,我终于明白了:

java.source.srcDirs并且jni.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"
        }
    }
}
于 2016-06-06T18:29:14.013 回答