web-dev-qa-db-fra.com

Erreur: chemin de fichier trop long sous Windows, ne pas dépasser 240 caractères

Alors, j'ai apporté quelques modifications à mon fichier build.gradle (app) et Android studio me donne cette erreur (ouvrez l'image dans un nouvel onglet pour un meilleur affichage): Error description from Logcat

Mon fichier build.gradle (app) (ce n'est pas le fichier édité, j'ai supprimé de nouvelles lignes de code et toujours aucune chance/solution.): Build.gradle

Tout fonctionnait assez bien jusqu'à ce que je modifie le fichier build.gradle (app), mais j'ai ensuite supprimé ces nouvelles lignes de codes et Android studio continue de m'indiquer l'erreur. L'erreur concerne la compilation 'com.google.Android.gms: play-services: 8.3.0' . J'ai essayé de supprimer/renommer ces images png dans le dossier indiqué, mais lorsque je reconstruis le projet, les images png sont automatiquement téléchargées. Mon fichier build.gradle (projet) contient le chemin de classe 'com.Android.tools.build:gradle:1.5.0'. Je veux savoir ce qui cause cette erreur et comment la corriger? Merci beaucoup.

66
Neel0507

Je viens de rencontrer le même problème. Je ne connais pas de solution à votre problème exact, mais j'ai trouvé un moyen de contourner le problème. Je vois que votre projet a une hiérarchie de chemins de fichiers profonds. Pourquoi ne pas simplement déplacer votre projet d'un niveau inférieur?

Ex: C:\Projects\YourProject

Cela a résolu le problème pour moi.

102
Vladimir Dimov

Vous pouvez également essayer de changer votre répertoire de construction pour votre projet, car c’est là que la plupart des problèmes de chemins se poseront. Dans votre fichier build.gradle racine

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

Android Studio prendra en compte les modifications et affichera toujours votre nouvel emplacement de construction dans la vue Projet. C'est beaucoup plus facile que de déplacer l'ensemble de votre projet.

EDIT

Bien que Windows 10 Insider Preview offre désormais la possibilité d'autoriser des limites de chemin de fichier plus longues, ces limites ne sont actuellement accessibles qu'aux applications qui ont spécifiquement activé la prise en charge de chemins de fichier plus longs.

À l'heure actuelle, il semble que ces applications avec le chemin étendu activé semblent être uniquement des applications installées via le Windows Store.

À l'heure actuelle, cette option n'est pas et ne peut potentiellement pas être activée par Gradle pour utiliser la longueur de chemin de fichier NTFS améliorée.

166
lodlock

Cause du problème: 'C:\utilisateurs ...\commom_google_signin_btn_text_dark_normal.9.png' la longueur du chemin de l’icône est supérieure à 240 caractères et dépasse Limite de longueur maximale du chemin de fichier du système d'exploitation Windows.

La solution est la suivante: Déplacez votre projet dans le répertoire principal tel que 'C:\votre_projet' ou réduisez la longueur de votre nom de projet.

Voici le diagramme de limite de chemin de fenêtres enter image description here

11
Biswajit Karmakar

En guise d'alternative très solide au déplacement du projet, je suggérerais d'utiliser un lien solide. La syntaxe de ce serait comme ça

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

Vous pouvez maintenant travailler sur votre projet dans C:\AndroidProjects\ProjectName et faire en sorte que les modifications soient apportées exactement là où votre projet est censé être.

6

Je suis d'accord avec Vladimir Dimov répondre. Vous devez choisir le chemin court de votre projet, car il est indiqué que le chemin du fichier doit comporter moins de 240 caractères sous Windows. Ce lien m'aide à: http://www.feelzdroid.com/2016/01/Android-studio-error-file-path-too-long-windows.html

2
Aakanksha

Raccourcir les pistes de projet est vraiment un peu un bidouillage, la réponse d’Ivan Neeson semble être la voie à suivre.

Si vous avez la chance d'utiliser Android Studio, vous verrez alors un message d'erreur utile sur la longueur du fichier. Si toutefois vous rencontrez le même problème en effectuant une ligne de commande ionic tout construire, vous verrez s'il existe une erreur de frappe pour un fichier png et que ce n'est pas si évident.

Le vrai problème est que les services Google Play ont des noms de fichiers aussi extravagants, tels que common_google_signin_btn_text_light_normal_background.9.png, qui ne sont tout simplement pas compatibles avec Windows. Déchargez cela dans une construction Android et le chemin explose en dehors de notre contrôle vers les plates-formes\Android\build\intermediates\exploded-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

2
AlgebraWinter

En complément de la réponse de lodock, vous pouvez utiliser un hachage sur le chemin du projet si vous avez beaucoup de projets portant le même nom:

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

Vous devriez avoir pour objectif de conserver votre répertoire de projet le moins profond possible, par exemple: - D:/AndroidWorkSpace/ProjectName

Parce que Android Studio ne prend en charge que 240 caractères de la longueur du chemin du projet

Merci

1
Ali Abhas

Jetez un œil à ceci http://feelzdroid.com/2016/01/Android-studio-error-file-path-too-long-windows.html . La solution est trop simple, gardez le chemin du dossier de moins de 240 caractères.

Assurez-vous d'avoir moins de 240 chartes dans le chemin

1
Naruto

J'ai eu une expérience différente avec ce problème. D'abord j'ai cette erreur mais ensuite j'ai remarqué que mes projets précédents dans le même répertoire s'ouvraient. C'est le chemin:

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

De manière surprenante, j'ai mis à jour cette version de gradle en 'com.Android.tools.build:gradle:3.2.1' à partir de 'com.Android.tools.build:gradle:2.0.0'

Cela a résolu mon problème.

0
David Enoma

Je faisais face au même problème, mon projet est dans le lecteur C et il se trouve dans un emplacement de chemin plus profond. dans la hiérarchie de localisation profonde.

0

Pour les utilisateurs Windows:

Vous pourriez être tenté de créer un partage réseau dans le dossier racine du projet, puis de le mapper. Cette technique raccourcit la longueur globale du chemin mais posera des problèmes pour Android Studio en raison de la difficulté à détecter les fichiers modifiés. Une meilleure solution consiste à utiliser la commande windows subst. Voici un exemple de script pour contourner le problème. Modifiez les noms si nécessaire et modifiez-le pour qu'il pointe vers votre projet et installe les répertoires.

Fichier: launchAS.cmd

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

Les commandes ci-dessus créeront un lecteur P: et le mapperont sur le dossier racine du projet. Cela réduira la longueur totale du chemin d'accès aux fichiers de projet et pourrait vous aider à résoudre le problème du nom de chemin d'accès trop long. Utilisez P:\comme vous auriez utilisé le nom de la racine longue lors de l’ouverture de projets.

Pour supprimer le mappage, utilisez la commande suivante: subst P:/d

0
Java42

J'ai trouvé ce problème quand j'ai deux dossiers répétés dans le même genre,

E:\project-one\project-one

et quand il a une grande longueur de nom de dossier comme,

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

Pour éviter ce problème, créez un dossier de projet simple et court.

0
Krunal Kapadiya

Vous pouvez utiliser le point de jonction NTFS pour créer un chemin plus court vers votre projet. Pour en savoir plus sur les jonctions, lisez ceci: Liens physiques et jonctions

Une jonction (également appelée lien symbolique) diffère d'un lien physique en ce que les objets de stockage qu'elle référence sont des répertoires distincts, et une jonction peut relier des répertoires situés sur des volumes locaux différents sur le même ordinateur. Sinon, les jonctions fonctionnent de manière identique aux liaisons en dur

0
Fred