2015-11-24 12 views
54

Quindi, ho apportato alcune modifiche al mio file build.gradle (app) e android studio mi dà questo errore (apri l'immagine in una nuova scheda per una migliore visualizzazione): Error description from LogcatErrore: file percorso troppo lungo su Windows, tenere sotto 240 caratteri

mio build.gradle del file (app) (questo non è il file modificato, ho cancellato le nuove righe di codice e ancora senza fortuna/soluzione.): Build.gradle

Tutto era abbastanza funzionando bene fino a quando ho fatto alcune modifiche nel file build.gradle (app), ma poi ho cancellato quelle nuove linee di codici e Android Studio continua a darmi l'errore. L'errore si riferisce alla compilazione di com.google.android.gms: play-services: 8.3.0 '. Ho provato a cancellare/rinominare quelle immagini png all'interno della cartella indicata, ma poi quando ricostruisco il progetto, le immagini png vengono scaricate automaticamente. Il file build.gradle (progetto) contiene classpath 'com.android.tools.build:gradle:1.5.0'. Voglio sapere che cosa causa questo errore e come risolverlo? Grazie molto.

+1

gradle funziona con ** percorsi relativi ** e compila i percorsi di progetto lunghi. android-studio-2.2 funziona con ** percorsi assoluti **. C'è un modo per dire a android-studio-2.2 di lavorare con percorsi relativi? – k3b

risposta

89

Ho appena avuto lo stesso problema. Non conosco una soluzione per il tuo problema esatto, ma ho trovato un lavoro in giro; Vedo che il tuo progetto ha una gerarchia di percorsi di file profonda. Perché non spostare semplicemente il tuo progetto da un livello inferiore?

Es: C:\Projects\YourProject

Che risolto il problema per me.

+0

Esistono altre soluzioni, ma ritengo che lo spostamento del progetto più vicino alla directory radice sia la migliore, perché è più facile mantenere una gerarchia di file più semplice. –

+1

A mio parere, l'utilizzo di un percorso di compilazione corto separato consente una condivisione più semplice del progetto con gli altri. Risolve il problema indipendentemente da dove gli altri membri del team memorizzano i loro file di progetto. Nelle aziende con rigide regole di gerarchia dei file, può essere d'aiuto nel caso in cui si verifichino percorsi gonfiati con schemi di denominazione troppo lunghi o troppo lunghi. Tuttavia, i percorsi di costruzione brevi non risolvono nulla se i tuoi schemi di denominazione utilizzano nomi di file/file troppo lunghi. In tal caso, dovresti certamente abbreviare il percorso del progetto root. Alla fine della giornata, però, fai ciò che funziona meglio per te. Solo la mia analisi di $ 0,025 – lodlock

+0

Nizza. Buona soluzione ... –

6

Come alternativa molto solida allo spostamento effettivo del progetto, suggerirei di utilizzare un collegamento fisico. La sintassi di che sarebbe stato così

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

Ora è possibile lavorare sul progetto in C: \ AndroidProjects \ ProjectName, e hanno le modifiche proprio dove il progetto si suppone di essere.

+0

Suona come una grande idea, ma ora ottenere un javascript di errore di memoria heap. Triste, perché questa è esattamente la soluzione che suggerirei! –

149

Si potrebbe anche provare a cambiare la directory di costruzione per il progetto dal momento che è dove la maggior parte dei problemi di percorso sorgerà. Nel file di root build.gradle

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

Android Studio prenderà sul cambiamento ed ancora mostrare il vostro nuovo percorso di generazione nella finestra del progetto. È molto più semplice che spostare l'intero progetto.

EDIT

Mentre Windows 10 Insider Anteprima offre ora la possibilità per consentire per il percorso del file limita più questi limiti attualmente sono solo in realtà accessibili alle app che sono specificamente abilitato il supporto per i percorsi dei file più lunghi.

Al momento attuale, sembra che queste applicazioni con il percorso esteso abilitato sembrino essere solo app installate tramite Windows Store.

Al momento attuale, Gradle non può e potenzialmente non può avere questa opzione abilitata per utilizzare la lunghezza del percorso file NTFS avanzata.

+6

La migliore soluzione di tutto !!! Ha funzionato per me Cambia solo la directory di costruzione, non è necessario spostare l'intero progetto. –

+8

Questa dovrebbe essere la soluzione accettata, funziona alla grande e non ha alcun impatto sul progetto stesso. –

+2

Genio! Ho avuto lo stesso problema inaspettatamente dopo l'aggiornamento del mio gradle. (I servizi di riproduzione di Google utilizzano nomi di file/cartelle ridicolmente lunghi.) Questa soluzione è semplice e, poiché i file di generazione sono generati, non dovrebbe essere sotto controllo sorgente di nessuno. Quindi questa risposta dovrebbe generalmente essere una soluzione facile per il problema. Grazie! – Dave

0

È possibile utilizzare il punto di giunzione NTFS per creare un percorso più breve per il progetto. Per saperne di più su Giunzioni leggere questo: Hard Links and Junctions

A junction (also called a soft link) differs from a hard link in that the storage objects it references are separate directories, and a junction can link directories located on different local volumes on the same computer. Otherwise, junctions operate identically to hard links

11

Causa del problema: 'C: \ Users ... \ commom_google_signin_btn_text_dark_normal.9.png' lunghezza icona percorso è maggiore di 240 caratteri che supera massima Percorso file Lunghezza limitazione del sistema operativo Windows.

Soluzione: Spostare il progetto nella directory principale come "C: \ your_project" o ridurre la lunghezza del nome del progetto.

Ecco grafico limite di percorso di Windows enter image description here

1

si dovrebbe avere per mantenere il vostro Directory Project As Meno profondamente possibile Per esempio: - D:/AndroidWorkSpace/ProjectName

perché solo Studio Android di sostegno 240 lunghezza caratteri del Progetto Percorso

Grazie

+0

Gradle è il problema, non Android Studio. – Udo

1

in aggiunta alla risposta di lodock, è possibile utilizzare un hash sul percorso del progetto, se hai un sacco di progetti con lo stesso nome:

import java.security.MessageDigest 

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

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

ho trovato questo problema quando ho due cartelle ripetuto lo stesso come,

E:\project-one\project-one 

e quando ha un grande lunghezza del nome della cartella come,

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

Per evitare questo problema Creare una cartella di progetto semplice e breve.

1

Per gli utenti Windows:

Si potrebbe essere tentati di creare una condivisione di rete nella cartella principale del progetto e quindi mappare ad esso. Questa tecnica accorcerà la lunghezza complessiva del percorso, ma causerà problemi ad Android Studio a causa della difficoltà nel rilevare i file modificati. Una soluzione migliore è utilizzare il comando subst di Windows. Ecco uno script di esempio per aggirare il problema. Modificare i nomi come necessario e modificare per puntare al progetto e installare le directory.

File: launchAS.cmd

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

I suddetti comandi creeranno un P: e la mappa nella cartella principale del progetto. Ciò ridurrà la lunghezza complessiva del percorso ai file di progetto e potrebbe dare sollievo per il problema del nome del percorso troppo lungo. Usa P: \ come avresti usato il nome radice lungo quando avevi aperto i progetti.

Per rimuovere il comando uso mappatura: subst P:/d

2

percorsi progettuali accorciamento è davvero un po 'di un hack, la risposta di Ivan Neeson sembra la via da seguire.

Se sei abbastanza fortunato da utilizzare Android Studio, verrà visualizzato un messaggio di errore utile sulla lunghezza del file. Se tuttavia si verifica lo stesso problema eseguendo una configurazione ionica da riga di comando, tutto ciò che si vedrà sarà un errore di crunch per un file png e non è così ovvio.

Il vero problema sono i servizi di Google Play con nomi di file così stravaganti come common_google_signin_btn_text_light_normal_background.9.png che semplicemente non sono compatibili con Windows. Scaricalo all'interno di una build di Android e il percorso esplode al di fuori del nostro controllo sulle piattaforme \ 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

Problemi correlati