【问题标题】:Gradle file paths too long for Windows对于 Windows,Gradle 文件路径太长
【发布时间】:2018-12-16 00:27:27
【问题描述】:

好的,我看到过类似的问题,但我还没有找到令人满意的解决方案,所以我要开一个新的。问题是 Gradle 生成的文件路径非常长,超过了 Windows 上的 240 个路径限制。问题是,一旦arm-linux-androideabi-ar 运行,我就会收到如下错误:

arm-linux-androideabi-ar: C:/tmp/ATC/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/[redacted]/D_/[redacted]/android/[redacted]_ATC/src/main/jni/__/__/__/__/[redacted]/src/main/jni/__/__/__/__/__/source_code/app/missions/mission_utils/mission_data/mission_difficulty.o: No such file or directory
make: *** [C:/tmp/ATC/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/lib[redacted].a] Error 1

我已经将 gradle 项目的 buildDir 更改为 C:/tmp 并尽可能多地剥离它。我还将项目本身移动到驱动器的根目录,并启用了 Windows 10 长路径,这是我找到的唯一建议。但是,看路径,Gradle 看起来确实像将 .. int __ 转换为真实路径,而不是将其转换为真实路径,因此文件的路径也可以是:

C:/tmp/ATC/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/[redacted]/D_/[redacted]/android/[redacted]_ATC/source_code/app/missions/mission_utils/mission_data/mission_difficulty.o

仍然是一个让我觉得非常长的字符串,但它暂时可以解决我的问题。是否有可能说服 Gradle 生成这些类型的路径?还有什么我可以做的吗? Windows 10 长路径支持已启用

【问题讨论】:

  • 是否有特殊任务因路径过长而失败?如果是例如一个 JavaExec 任务,这个 Gradle 论坛条目可能会有所帮助:discuss.gradle.org/t/how-to-use-wildcards-in-javaexec-classpath/… 如果没有关于您的项目设置和系统设置的更多详细信息可能会有所帮助。但从这个评论看来这是一个已知的限制discuss.gradle.org/t/filename-too-long-in-windows/9222/2
  • @mascha 我发布了失败的特定命令。请注意,这是 NDK 的问题,而不是 Java 的问题。类路径不是我的问题,我的问题是 Android 归档器无法打开编译器生成的 .o 文件

标签: android gradle android-ndk


【解决方案1】:

Windows 长路径支持已经存在(win10,甚至在 Win7 上),但工具尚不存在。

仍然是一个让我觉得非常长的字符串,但它可以解决我的问题 暂时的问题。是否有可能说服 Gradle 生成这些类型的路径?

我不知道。我认为路径本身不是问题,如果您使用长路径,重要的是前缀。

还有什么我可以做的吗? Windows 10 长路径支持是 已启用。

我认为 Windows 10 长路径支持对您的情况没有帮助。问题是您使用arm-linux-androideabi-ar 构建的任何东西都没有以\\?\ 为前缀,这是Windows 识别它是一条长路径所必需的。

甚至为您的问题打开了ticket #711。解决方案类似于clang++

我想到的解决方法:

这不是一个“纯”的 Windows 解决方案。一种是使用windows 10 linux subsystem。第二种选择是使用 MSYS2 和特定于 Gradle

【讨论】:

  • WSL 也是我的想法,但不幸的是,Android Studio 似乎不支持在 WSL 上远程构建和运行 Android Studio,而基于 Windows 的 X-Server 不起作用。我想我得等到 #711 票解决了。
  • @JustSid 啊,这太可惜了:(。我不知道能够创建补丁的工具有多深。在 llvm.org - reviews.llvm.org/rL311382 上有一个补丁准备好了,但您可能还需要调整binutils
  • 是的,看起来我一直在用较慢的 Mac 工作。哦,好吧,我确信这会得到解决。感谢所有的帮助和挖掘:)
  • @JustSid 欢迎您。也谢谢你 :)。我很乐意为您提供更多帮助,但显然即使是维护人员也在考虑如何处理它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-05
  • 2014-11-27
  • 2016-06-08
  • 1970-01-01
  • 2016-02-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多