【问题标题】:How to exclude a C++ code directory from build in Android Studio/gradle?如何从 Android Studio/gradle 中的构建中排除 C++ 代码目录?
【发布时间】:2016-06-17 17:36:23
【问题描述】:

我正在尝试在 Android Studio 2.1.2 gradle 2.10 中从我的构建中排除特定目录。这是我现在拥有的 build.gradle 文件:

model {
android {
    compileSdkVersion = 23
    buildToolsVersion = '23.0.2'
    defaultConfig {
        applicationId = 'com.android.gl2jni'
        minSdkVersion.apiLevel = 5
        targetSdkVersion.apiLevel = 23
    }
    ndk {
        platformVersion = 9
        moduleName = 'gl2jni'
        toolchain = 'clang'
        stl = 'gnustl_static'
        cppFlags.addAll(['-std=c++11', '-Wall', '-Wc++11-narrowing'])
        ldLibs.addAll(['log', 'GLESv2'])
    }
    buildTypes {
        release {
            minifyEnabled = false
            proguardFiles.add(file('proguard-rules.txt'))
        }
    }

    sources {
        main {
            jni {
                source {
                    srcDirs = ['src/main/jni/KataPlatform']
                    exclude 'src/main/jni/KataPlatform/Linux'
                }
            }


        }
    }
}
}

exclude 指令似乎没有任何效果,因为构建愉快地潜入子文件夹并开始产生错误。如何说服它跳过该 Linux 子文件夹中的所有文件?

【问题讨论】:

  • 看起来这仍然是一个悬而未决的问题:code.google.com/p/android/issues/detail?id=64957
  • 我很困惑构建系统无法正确实现这一基本功能。简单地放弃 gradle 并改为配置旧式 Ant 构建是合理的做法吗?
  • 自从他们宣布新的构建系统以来,Android Studio 中对 NDK 的缺乏/延迟支持一直让我感到困惑。

标签: android c++ java-native-interface


【解决方案1】:

您遇到的问题是 gradle 试图排除“src/main/jni/KataPlatform/src/main/jni/KataPlatform/Linux”。设置 sourceDirs 后,您的排除项应该与此相关。尝试在以下代码 sn-p 中将您的排除更改为“Linux”:

sources {
    main {
        jni {
            source {
                srcDirs = ['src/main/jni/KataPlatform']
                exclude 'Linux'
            }
        }


    }
}

或者,如果您不设置 srcDirs,它将默认为 'src/main/jni',因此将代码更改为以下内容也应该可以:

sources {
    main {
        jni {
            source {
                exclude 'KataPlatform/Linux'
            }
        }


    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-13
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    • 2013-05-18
    • 2011-01-22
    • 1970-01-01
    • 2015-04-26
    相关资源
    最近更新 更多