如何将C 代码目录从Android Studio/Gradle中的构建中排除

How to exclude a C++ code directory from build in Android Studio/gradle?

本文关键字:Gradle Studio 排除 构建 Android 代码      更新时间:2023-10-16

我正在尝试将特定目录从我的构建中排除,在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'
                }
            }

        }
    }
}
}

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

您遇到的问题是Gradle试图排除" SRC/MAIN/JNI/KATAPLATFORM/SRC/MAIN/JNI/KATAPLATFORM/LINUX"。设置"源"之后,您的排除应与之相关。尝试将您的排除更改为" Linux",例如以下代码段:

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

    }
}

另外,如果您不设置srcdirs,它将默认为'src/main/jni',因此将代码更改为以下内容也应该有效:

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

    }
}