Sto cercando di creare un'immagine di finestra mobile che possa essere utilizzata per creare progetti Android, utilizzando Shippable.Gli strumenti di Android SDK installati in Docker non funzionano
Il problema è il comando android update sdk
, che dà il seguente errore:
Installing Android SDK Tools, revision 24.2
Failed to rename directory /opt/android-sdk-linux/tools to /opt/android-sdk-linux/temp/ToolPackage.old01.
Failed to create directory /opt/android-sdk-linux/tools
ho trovato un po 'di una soluzione qui: https://stackoverflow.com/a/8839359/867099 ma è per Windows, e non sembra per risolvere il problema su Linux. Sembra che durante il comando update, la directory corrente sia in uso e quindi non può essere rinominata.
mia soluzione sofar, utilizzando tale workaroundsuggestion, è questa:
RUN cp -r /opt/android-sdk-linux/tools /opt/android-sdk-linux/tools_copy
RUN cd /opt/android-sdk-linux/tools && echo 'y' | /opt/android-sdk-linux/tools_copy/android update sdk --no-ui -a --filter tools,platform-tools,build-tools-22.0.1,android-21,extra-android-support,extra-google-google_play_services --force
Per accettare automaticamente la licenza, ho echo 'y'
al comando di Android.
Ma penso che il comando android
debba anche essere eseguito nella directory corretta, motivo per cui I cd
in esso prima.
Tuttavia, non riesce ancora. Sono piuttosto stordito su come risolvere questo problema, quindi ogni aiuto è apprezzato.
------ AGGIORNAMENTO --------
faccio funzionare l'ordine android sdk update
senza il filtro tools
, e alla fine, il mio Gradle generazioni sono riuscito. Quindi non so con certezza se è un problema non aggiornarli ...
"Sembra che durante il comando di aggiornamento, la directory corrente è in uso e quindi non può essere rinominato" - prova 'adb kill-server' prima di eseguire il comando' android update sdk'. O vedere se ci sono altri processi in esecuzione che potrebbero fare riferimento a questa directory. – CommonsWare
Penso che sia effettivamente '' '' adb'''' che accede alla directory, ma viene avviato quando eseguo il comando update. Quindi non sembra possibile ucciderlo in tempo. – xorgate
Può essere correlato al driver di archiviazione in base a questo https://github.com/travis-ci/travis-ci/issues/2848 – shbi