gpt4 book ai didi

android - 如何在Gradle中删除任务名称中的斜杠

转载 作者:行者123 更新时间:2023-12-03 05:26:45 24 4
gpt4 key购买 nike

我正在尝试运行一个旧的Android项目,但是build.gradle(:app)文件中有错误。

ndk_projects.each { File file ->

//noinspection GroovyAssignabilityCheck
task "copy $file" (dependsOn: "build $file", type:Copy) {
from "$buildDir/tmplibs"
into "$buildDir/libs"
}


//noinspection GroovyAssignabilityCheck
task "build $file" (dependsOn: ["copy $OpenNI2_path", "copy $OpenCL_path"], type:Exec) {
workingDir file
commandLine "${ndkDir}/ndk-build",
"NDK_PROJECT_PATH=${buildDir}/intermediates/ndk" ,
"NDK_APPLICATION_MK=${file.absolutePath}/jni/Application.mk" ,
"APP_BUILD_SCRIPT=${file.absolutePath}/jni/Android.mk",
"NDK_LIBS_OUT=${buildDir}/tmplibs"
environment NDK_MODULE_PATH: ndk_projects[0].absolutePath + "/jni" + ":" + OpenCL_path + "/obj/local/"
}

}

错误显示 task name must not contain any of the following characters: [/, \, :, <, >, ", ?, *, |].。因为它使用文件路径作为任务名称,所以我应该更改它。一个简单的解决方法是删除路径中的所有斜杠并将其用作任务名称。但是,我对Gradle语法了解为零。有人可以告诉我该怎么做吗?谢谢。

最佳答案

Gradle使用Groovy,它通常与Java兼容。 Groovy在String上具有replaceAll方法,您可以在此处将其与正则表达式配合使用:

task "build ${file.path.replaceAll("[/\\\\:<>\"?*|]", ' ')}" (...) {
// ...
}

如果需要,您可以替换较少的字符,这会将所有无效字符替换为一个空格。

关于android - 如何在Gradle中删除任务名称中的斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60920984/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com