2013-11-28 11 views
5

Quello che sto tentando di fare: Installare gli strumenti di build Android su Mac OSX in modo da poter usare il comando aapt per crunch/elaborare alcune immagini per testImpossibile eseguire il comando aapt - continua a restituire "Android SDK Build-tools"

quello che ho fatto:

  1. installato l'SDK di Android utilizzando birra
  2. Eseguire il comando android per far apparire l'SDK Responsabile
  3. Utilizzato il Manager per installare gli strumenti SDK (22.3), SDK Platform-tools (19), SDK Build-tools (19) e Android 4.4
  4. Ho verificato che gli strumenti sono stati aggiunti al percorso predefinito quando si utilizza brew.

cosa succede: esecuzione aapt o aapt v restituisce sempre Use the 'android' tool to install the "Android SDK Build-tools".

ho provato anche l'aggiornamento degli strumenti utilizzando android update, ma continua a non funzionare.

MODIFICA: L'esecuzione del percorso completo su aapt v funziona. Ora suppongo di avere un problema con il mio PATH che devo ancora risolvere

Qualsiasi suggerimento su cosa provare dopo sarebbe molto apprezzato.

risposta

22

Sono abbastanza sicuro che l'SDK di Android non tenti di modificare la tua variabile PATH per te. Se si desidera essere in grado di eseguire gli strumenti SDK senza specificare il percorso completo, è necessario aggiungere le cartelle che li contengono al numero PATH uno alla volta.

È possibile farlo modificando il tuo ~/.bash_profile e l'aggiunta di una linea in questo modo (o la modifica di una linea esistente come questo se avete già uno):

export PATH="$PATH:/PATH/TO/android-sdk-macosx/build-tools/17.0.0" 

In alternativa, si può semplicemente specificare il percorso completo lo strumento quando la invoca, in questo modo:

/PATH/TO/android-sdk-macosx/build-tools/17.0.0/aapt v 

io non sono sicuro che questo succede mai con aapt, ma questo può essere utile per disambiguare se sono installate più versioni di uno strumento. Per vedere quale versione di un comando che bash sta risolvendo a, di solito si può scoprire eseguendo which, in questo modo:

which aapt 

EDIT

Ci sono stati un certo numero di commenti positivi su questa risposta compreso Jared's excellent suggestion to dynamically add the latest build-tools to the path. Ho reimplementato il suo codice in puro 3.x bash, ecco cosa è attualmente nel mio ~/.bash_profile.In primo luogo, assicurarsi di impostare ANDROID_HOME:

export ANDROID_HOME="$HOME/Library/Android/sdk" #Set this to the path to your Android SDK if it's not in the default location 

Poi (se si utilizza bash):

BUILD_TOOLS=($ANDROID_HOME/build-tools/*) 
ANDROID_LATEST_BUILD_TOOLS="${BUILD_TOOLS[@]:(-1)}" 
export PATH="$PATH:$HOME/bin:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_LATEST_BUILD_TOOLS" 

In alternativa, ecco una versione POSIX che dovrebbe funzionare in qualsiasi shell:

ANDROID_LATEST_BUILD_TOOLS=$(ls -r ${ANDROID_HOME}/build-tools|head -1) 
export PATH="$PATH:$HOME/bin:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools/$ANDROID_LATEST_BUILD_TOOLS" 
+0

Penso che tu sia su qualcosa; eseguire 'which' mi ha mostrato un'altra istanza di' aapt'. Ho intenzione di provare a rimuoverlo e vedere se questo risolve il mio problema. – Dre

+0

Eccellente: 'quale aapt' ha rivelato che stava cercando di eseguire il comando dalla posizione sbagliata (presumibilmente gli strumenti devono essere stati installati in una posizione diversa ad un certo punto e poi cancellati, ma l'alias è rimasto). Rimuovendo l'alias e aggiornando '~/.bash_profile' come descritto funziona. È la prima volta che mi imbatto in 'which'; questo è un comando pratico. Grazie! – Dre

+2

Trovo utile memorizzare la versione degli strumenti di compilazione come variabile separata nel mio profilo. Ad esempio ... esporta ANDROID_BUILD_TOOLS_VERSION = 22.0.1 ... così puoi facilmente puntare a una versione diversa senza modificare direttamente PATH e altre variabili ... esporta ANDROID_BUILD_TOOLS_HOME = $ ANDROID_SDK_HOME/build-tools/$ ANDROID_BUILD_TOOLS_VERSION ... esporta PERCORSO = $ PERCORSO: $ ANDROID_SDK_TOOLS_HOME: $ ANDROID_BUILD_TOOLS_HOME ... ecc. –

Problemi correlati