2015-04-27 15 views
6

Sto usando gradle per creare un'applicazione Android. Sto copiando diversi file e cartelle nella cartella delle risorse. Ora ho riscontrato il problema, che alcuni file potrebbero avere un nome file troppo lungo, così come le cartelle (aapt non può gestire nomi di file più lunghi di 100 caratteri).Rinomina directory durante la copia utilizzando Gradle

quindi sono rinominare i file durante l'operazione di copia in questo modo:

copy { 
    from('A') 
    into('B') 
    rename ('too-long-filename', 'shorter-filename') 
    rename ('too-long-directoryname', 'shorter-directoryname') 
    } 

Tuttavia, questo funziona bene per i file, ma non riesce per le directory. C'è un comando speciale per ottenere la rinomina durante la copia usando gradle?

L'errore dice:

Codice di errore: uscita: /home/curiosity/AndroidStudioProjects/App/build/..way nomi troppo lunghi di directory ../: errore: nome di directory non valido, incapace aggiungere.

+1

cosa si ottiene un errore? – RaGe

+0

Sì, ho dimenticato di aggiungere quello. L'errore è sempre: "Impossibile aggiungere la directory. Nome directory non valido." Lo capisco perché lo strumento di packaging Android non consente effettivamente nomi con più di 100 caratteri. La rinomina aiuta per il file ma non ha alcun effetto per la directory. L'errore è lo stesso con o senza la riga: rename ('too-long-directoryname', 'shorter-directoryname') – curiosity

+1

Errore di post nella domanda. –

risposta

0

È possibile provare la visita FileTree ma è necessario salvare le directory, non è possibile modificarle mentre si sta attraversando. E se si desidera solo per abbreviare il nome, probabilmente in grado di utilizzare il LongName Groovy stringa notazione [0 ..- 10]

Qualcosa di simile:

def dirs = [] 
fileTree("./longdirectoryname").visit { FileVisitDetails details -> 
    if (!details.isDirectory()) { 
     // rename 
    } else { 
     dirs.add(details.file) 
    } 
} 

dirs.each { // rename directories here } 
+0

Grazie, questa è una soluzione con cui posso convivere :) Tuttavia, tendo ad aggiungere alcuni nomi di file di pre-elaborazione e di breve durata oltre ad adattare tutti i riferimenti. – curiosity

Problemi correlati