android - 检索 gradle 脚本中 Flavor 和 BuildType 相关的类路径

标签 android android-studio java-native-interface android-gradle-plugin build.gradle

我正在尝试使用“javah”命令生成 JNI header ,为此我需要传递包含项目 .class 文件的目录。以前在 ant 中,这是一个静态位置,但在 gradle 上,它是动态的 buildTypes 和 ProductFlavors。

gradle中有代表类路径的变量吗?例如,我想检索 build/intermediates/classes/debug/、build/intermediates/classes/dev/debug/等。

我使用的是 gradle 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(assembleRelease) 的检查更改为 hasTask(assembleProdRelease) 来调整以合并 ProductFlavors

关于android - 检索 gradle 脚本中 Flavor 和 BuildType 相关的类路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33703673/

相关文章:

android-studio - Gradle同步失败:找不到参数[com.google.android.gms:play-services-ads:18.2.0]的方法Implementation()

java - 通过 JNI 从不同的线程调用保存的 java 对象

Java 到 C 对象传递

java - 指向循环 TextView 和按钮

android - 替换选项卡内容

android - 错误 : package android. hardware.camera2 不存在 OpenCV

java - 为什么当通过 JNI 在 Java 代码中运行 EGL 函数时,我对 EGL 函数的调用会发生变化?

java - 如何使用关键字过滤 RSS 提要?

java - 无法初始化 Parse SDK 测试

java - 当我启动并启动时,我的应用程序崩溃了?