首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"project.copy“没有在MacOS高中工作

"project.copy“没有在MacOS高中工作
EN

Stack Overflow用户
提问于 2017-10-18 06:23:18
回答 1查看 131关注 0票数 0

在我的Android项目中,我有一个小脚本,它是从不同的语言资源创建的,strings.xml用于Android,.lproj用于iOS。

直到现在,一切都很好,但后来我升级到MacOS高中塞拉利昂。现在,在我的Android项目中,创建字符串值的gradle-Task失败了,因为它无法打开values-da文件夹,同时将string.xml移动到res/文件夹中。

它失败的地方在于:

代码语言:javascript
复制
project.fileTree(dir: scriptPath).visit {
    FileVisitDetails details ->
        if (details.file.name.startsWith("values-")) {
            println "copying " + details.file.absolutePath + " to " + resPath;
            //It fails here at .copy
            project.copy {
                from details.file.absolutePath
                into resPath + "/" + details.file.name
                // copy english resources to base values folder
                if (details.file.name.equals("values-en")) {
                    into resPath + "/values"
                }
            }

            details.file.deleteDir();
        }
} 

我最初的猜测是,这可能与新的文件系统有关。有人有类似的问题吗?我可以证实,我可能是由高塞拉,因为我的同事有同样的问题后,更新到高塞拉。

在这里,“哪里出了问题”-Message:

代码语言:javascript
复制
* What went wrong:
A problem occurred evaluating project ':app'.
> Could not read directory path '/Some/path/from/User/values-da'.

下面是我在使用--stacktrace运行任务时获得的Stacktrace

代码语言:javascript
复制
Caused by: org.gradle.api.GradleException: Could not read directory    path '/Some/path/from/User/values-da'.
08:14:17.474 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.api.internal.file.collections.jdk7.Jdk7DirectoryWalker$1.postVisitDirectory(Jdk7DirectoryWalker.java:109)
08:14:17.474 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.api.internal.file.collections.jdk7.Jdk7DirectoryWalker$1.postVisitDirectory(Jdk7DirectoryWalker.java:58)
08:14:17.475 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.api.internal.file.collections.jdk7.Jdk7DirectoryWalker.walkDir(Jdk7DirectoryWalker.java:58)
08:14:17.475 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.api.internal.file.collections.DirectoryFileTree.walkDir(DirectoryFileTree.java:163)
08:14:17.475 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.api.internal.file.collections.DirectoryFileTree.visitFrom(DirectoryFileTree.java:147)
08:14:17.475 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.api.internal.file.collections.DirectoryFileTree.visit(DirectoryFileTree.java:132)
08:14:17.476 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.api.internal.file.collections.FileTreeAdapter.visit(FileTreeAdapter.java:110)
08:14:17.476 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.api.internal.file.AbstractFileTree.visit(AbstractFileTree.java:123)
08:14:17.476 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.api.internal.file.CompositeFileTree.visit(CompositeFileTree.java:64)
08:14:17.476 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.api.internal.file.CompositeFileTree.visit(CompositeFileTree.java:58)
08:14:17.476 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.api.file.FileTree$visit.call(Unknown Source)
08:14:17.476 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at build_4z109ko3musne9trwmjez6vxh$_run_closure6.doCall(/Users/mtuchner/fotoplus-android/frontend-android/app/build.gradle:230)
08:14:17.477 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:70)
08:14:17.477 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil.java:160)
08:14:17.477 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.util.ConfigureUtil.configureSelf(ConfigureUtil.java:136)
08:14:17.477 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.api.internal.AbstractTask.configure(AbstractTask.java:528)
08:14:17.477 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.api.internal.tasks.DefaultTaskContainer.create(DefaultTaskContainer.java:137)
08:14:17.478 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.api.tasks.TaskContainer$create.call(Unknown Source)
08:14:17.478 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at build_4z109ko3musne9trwmjez6vxh.run(/Users/mtuchner/fotoplus-android/frontend-android/app/build.gradle:184)
08:14:17.478 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:90)
08:14:17.478 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   ... 62 more
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-20 06:59:31

我可以用一点零钱来解决我的问题。在发布我看到的堆栈跟踪之后,JDK7FileProvider的".postVisitDirectory“方法会抛出错误。

文档中说,在访问FileTree之后,总是调用这个方法。因此,我将删除操作从当前的访问中删除,并将其放在.visit{}后面的一个闭包中,然后再次编译。

在这里,代码:

代码语言:javascript
复制
List<File> dirsToDelete = new ArrayList<File>()
// copy string resources from shared
project.fileTree(dir: scriptPath).visit {
    FileVisitDetails details ->
        if (details.file.name.startsWith("values-")) {
            println "copying " + details.file.absolutePath + " to " + resPath;
                project.copy {
                    from details.file.absolutePath
                    into resPath + "/" + details.file.name
                    // copy english resources to base values folder
                    if (details.file.name.equals("values-en")) {
                        into resPath + "/values"
                    }
                    dirsToDelete.add(details.file)
            }
        }
}.with {
    for(Iterator<File> i = dirsToDelete.iterator(); i.hasNext();) {
        File file = i.next();
        file.deleteDir();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46803948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档