错误:Windows上的文件路径太长,保持在240个字符以下

时间:2015-11-24 23:17:05

标签: android android-gradle google-play-services

所以,我对build.gradle(app)文件进行了一些更改,android studio给了我这个错误(在新标签中打开图像以便更好地查看): Error description from Logcat

我的build.gradle(app)文件(这不是已编辑的文件,我删除了新的代码行,但仍然没有运气/解决方案。): Build.gradle

在build.gradle(app)文件中做了一些更改之前,一切都运行良好,但后来我删除了那些新的代码行,android studio仍在继续给我错误。 该错误与编译com.google.android.gms:play-services:8.3.0' 有关。 我已经尝试在所述文件夹中删除/重命名那些png图像,但是当我重建项目时,会自动下载png图像。 我的build.gradle(项目)文件包含 classpath' com.android.tools.build:gradle:1.5.0' 。我想知道是什么导致了这个错误,以及如何修复它?非常感谢。

14 个答案:

答案 0 :(得分:165)

您还可以尝试更改项目的构建目录,因为这是大多数路径问题出现的地方。在根build.gradle文件中

allprojects {
    buildDir = "C:/tmp/${rootProject.name}/${project.name}"
    repositories {
       ...
    }
}

Android Studio将了解更改并仍在“项目”视图中显示新的构建位置。这比移动整个项目容易得多。

修改

虽然Windows 10 Insider Preview现在提供了允许更长文件路径限制的功能,但这些限制目前只有专门支持更长文件路径的应用才能实际访问。

目前,似乎启用了扩展路径的这些应用程序似乎只是通过Windows应用商店安装的应用程序。

目前,Gradle没有并且可能无法启用此选项以利用增强的NTFS文件路径长度。

答案 1 :(得分:101)

我刚遇到同样的问题。我不知道你确切问题的解决办法,但我找到了解决方法;我看到你的项目有一个深层文件路径层次结构。为什么不将项目从较低级别上移?

例如:C:\Projects\YourProject

这解决了我的问题。

答案 2 :(得分:11)

问题原因:'C:\ users ... \ commom_google_signin_btn_text_dark_normal.9.png'图标路径长度超过240个字符超过最大文件路径长度限制 Windows操作系统。

解决方案是:将项目移至顶级目录,例如'C:\ your_project'或缩短项目名称的长度。

这是windows路径限制图 enter image description here

答案 3 :(得分:6)

作为实际移动项目的一个非常可靠的替代方案,我建议使用硬链接。语法就像这样

mklink /J C:\AndroidProjects\ProjectName C:\MyVeryVeryVeryVery…VeryVeryVeryLongPath\ProjectName

现在,您可以使用C:\ AndroidProjects \ ProjectName处理项目,并将更改置于项目所在的位置。

答案 4 :(得分:2)

我同意Vladimir Dimov的回答。 您必须选择项目的短路径,因为提到Windows上的文件路径应低于240个字符。 这个链接可以帮助我:http://www.feelzdroid.com/2016/01/android-studio-error-file-path-too-long-windows.html

答案 5 :(得分:2)

作为lodock答案的补充,如果您有许多具有相同名称的项目,则可以在项目路径上使用哈希:

import java.security.MessageDigest

def hashString(String s){
    MessageDigest.getInstance("SHA1").digest(s.bytes).encodeHex().toString()
}

allprojects {
    buildDir = "C:/AB/${hashString(projectDir.getAbsolutePath())}"
}

答案 6 :(得分:2)

缩短项目路径确实是一个黑客攻击,Ivan Neeson的回应似乎是前进的方向。

如果您有幸使用Android Studio,那么您将看到有关文件长度的有用错误消息。 但是,如果您在执行命令行离子构建时遇到同样的问题,您将看到png文件是否存在某种紧缩错误,并且不是那么明显。

真正的问题是Google Play服务有这样的奢侈文件名,例如common_google_signin_btn_text_light_normal_background.9.png,这对Windows不友好。转储Android内部版本,路径在我们的控制之外爆发到平台\ android \ build \ intermediates \ explosion-aar \ com.google.android.gms \ play-services-base \ 10.2.1 \ res \ drawable-xhdpi- V4 \ common_google_signin_btn_text_light_normal_background.9.png

答案 7 :(得分:1)

看看这个http://feelzdroid.com/2016/01/android-studio-error-file-path-too-long-windows.html。解决方案太简单了保存文件夹的路径少于240个字符。

确保路径中的包机少于240个

答案 8 :(得分:1)

您必须尽可能地保持项目目录的深度 例如:- d:/ AndroidWorkSpace /项目名

因为Android Studio仅支持240个字符长度的项目路径

由于

答案 9 :(得分:0)

您可以使用NTFS交接点创建项目的较短路径。 要阅读有关Junctions的更多信息,请阅读: Hard Links and Junctions

  

联结(也称为软链接)与硬链接的不同之处在于,它引用的存储对象是单独的目录,并且联结可以链接位于同一计算机上不同本地卷上的目录。否则,交叉点的运行方式与硬链接相同

答案 10 :(得分:0)

当我有两个重复的文件夹时,我发现了这个问题,

E:\project-one\project-one

当它有一个很长的文件夹名称时,

E:\project-one-with-very-big-name

要避免此问题,请将项目文件夹设置为简单和简短。

答案 11 :(得分:0)

对于Windows用户:

您可能想要为项目根文件夹创建网络共享,然后映射到它。此技术将缩短整体路径长度,但由于难以检测修改的文件,因此会导致Android Studio出现问题。更好的解决方案是使用windows subst 命令。这是一个避免问题的示例脚本。根据需要调整名称并进行修改以指向项目并安装目录。

文件:launchAS.cmd

subst P: "C:\private\java42\ide\42g\workspaces\AndroidStudioProjects"
cd "C:\private\java42\programs\android-studio-base\bin"
start studio64.exe

上述命令将创建一个P:驱动器并将其映射到项目根文件夹。这将减少项目文件的总路径长度,并可能为您解决太长的路径名问题。使用P:\就像在打开项目时使用长根名称一样。

要删除映射使用命令: subst P:/ d

答案 12 :(得分:0)

我遇到了同样的问题,我的项目位于C驱动器中,并且位于更深的路径位置,我只是将我的项目移至其他较低的深路径位置,并且它起作用了,您只需更改项目位置和项目不应位于较深的位置层次结构中。

答案 13 :(得分:0)

我对这个问题有不同的经验。首先,我有此错误,但随后我注意到我在同一目录中的先前项目正在打开。这是路径:

C:\ Users \ koralis \ Documents \ extraction \ Ex_Files_Android_App_Dev_LDS_Upd \ Exercise Files \ Ch01 \ 01_06 \ ImageAssets

令人惊讶的是,我将该gradle版本更新为 来自``com.android.tools.build:gradle:2.0.0''的``com.android.tools.build:gradle:3.2.1''

这解决了我的问题。