【发布时间】: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