我正试图使用'javah'命令生成JNI头,为此,我需要传递包含project.class文件的目录。以前在ant中,这是一个静态位置,但在gradle上的buildTypes和productFlavors中是动态的。
gradle中是否有表示类路径的变量?例如,我想检索build/intermediates/classes/debug/、build/interediates/classes/dev/debug/等。
我在1.2.3级,我曾尝试使用"sourceSets.main.output.classesdir",但我收到一个错误,在源集main上找不到"output"。
我无法找到一种直接的方法来动态确定buildType和productFlavor,但我通过检查任务图找到了解决方案。
gradle.taskGraph.whenReady { taskGraph ->
if (taskGraph.hasTask(assembleRelease)) {
buildTypeClassPath = "build/intermediates/classes/release"
} else {
buildTypeClassPath = "build/intermediates/classes/debug"
}
}
我认为这个解决方案可以通过将hasTask(assemblyRelease)的检查更改为hasTask(ssemblyProdRelease)来适应productFlavors