提问人:StuStirling 提问时间:11/20/2020 最后编辑:JunaidStuStirling 更新时间:11/20/2020 访问量:31
在项目中启用 NDK 会导致目录被视为包
Enabling NDK In Project Causes Directories to be Seen as Packages
问:
我有一个相当复杂的项目,有许多构建变体和自定义源代码集。我最近集成了 NDK,并注意到一些奇怪的事情。什么都没有坏,一切似乎都在正常工作。我认为这是 Android Studio 的一个错误,除非 gradle 配置有问题。
我将以下内容添加到我的app/build.gradle
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
ndkVersion "22.0.6917172"
然后,我注意到 Android Studio 的“项目”窗格中的目录显示得好像它们是包一样。看起来好像每个变体都在处理中,即使我设置为被忽略。
这是目录以前的样子
这就是他们现在的样子
更大的问题是,构建变体的自定义源代码集仅包含在 kotlin 目录的级别?app/src/
这些配置与此示例类似。app/build.gradle
android {
...
sourceSets {
padoq.java.srcDirs += "src/standardTileHandler/kotlin"
}
...
}
padoq.java.srcDirs += nonHsdSource
以前,在项目视图中,这些显示为包含包的目录名称,而不是根目录。这是它以前的样子:kotlin
为了完整起见,我通过在根块中设置要忽略的变体来忽略某些构建变体:build.gradle
subprojects
subprojects {
afterEvaluate { project ->
if (project.hasProperty("android")) {
def androidProperty = project["android"]
if (androidProperty.hasProperty("flavorDimensionList")) {
def flavorDimensions = androidProperty["flavorDimensionList"]
if (flavorDimensions != null && flavorDimensions.contains("bopad")) {
androidProperty.invokeMethod("variantFilter", { variant ->
def names = variant.flavors*.name
// if names does not contain a variant that I want to build right now
setIgnore(true)
})
}
}
}
}
}
答: 暂无答案
评论