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

问题描述 投票:66回答:14

所以,我对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'。我想知道是什么导致了这个错误,以及如何修复它?非常感谢。

android android-gradle google-play-services
14个回答
102
投票

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

例如:C:\Projects\YourProject

这解决了我的问题。


0
投票

您可以使用NTFS交接点创建项目的较短路径。要阅读有关Junctions的更多信息,请阅读:http://feelzdroid.com/2016/01/android-studio-error-file-path-too-long-windows.html

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


0
投票

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

Hard Links and Junctions

当它有一个很大的文件夹名称,如,

E:\project-one\project-one

为避免此问题,请使项目文件夹简单明了。


0
投票

对于Windows用户:

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

文件:launchAS.cmd

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

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

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


0
投票

我遇到了同样的问题,我的项目是在C盘中,它在更深的路径位置,我做了什么我只是将我的项目移动到其他较低的深路径位置并且它工作,你只是改变项目位置和项目不应该是在深层次的层次结构中


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'

这解决了我的问题。


165
投票

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

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

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

编辑

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

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

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


11
投票

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

解决方案是:将项目移动到顶级目录,如“C:\ your_project”或减少项目名称的长度。

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


6
投票

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

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

现在,您可以在C:\ AndroidProjects \ ProjectName中处理项目,并将更改放在项目应该位于的位置。


2
投票

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


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())}"
}

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


1
投票

看看这个qazxsw poi。解决方案太简单了保存文件夹的路径少于240个字符。

确保路径中的字符少于240个


1
投票

你应该让你的项目目录尽可能地深入,例如: - D:/ AndroidWorkSpace / ProjectName

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

谢谢

© www.soinside.com 2019 - 2024. All rights reserved.