好的,我已经看到了类似的问题,但是我还没有找到令人满意的解决方案,所以我要开始一个新的问题。问题是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似乎将..
转换为__
而不是将其转换为真实路径,因此文件路径也可能是:
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长路径支持 已启用
答案 0 :(得分:3)
Windows长路径支持已经存在(即使在Win7上也为Win10),但工具尚不存在。
还是一个字符串,让我发疯了很长,但可以解决我的问题 暂时的问题。是否有可能说服Gradle 生成这类路径?
我不知道。我认为路径本身不是问题,如果您使用长路径,则前缀很重要。
还有什么我可以做的吗? Windows 10长路径支持是 已经启用。
我认为Windows 10长路径支持对您的情况无济于事。问题在于,使用arm-linux-androideabi-ar
生成的任何内容都没有以\\?\
作为前缀,Windows才能认识到这是很长的路。
甚至为您的问题打开了ticket #711。该解决方案与clang++类似。
这不是“纯” Windows解决方案。一种是使用windows 10 linux subsystem。第二种选择是使用MSYS2并专门用于Gradle。