331 votes

Comment faire pour installer les outils de génération de Android SDK sur la ligne de commande ?

Je veux configurer l’environnement de dev Android de ligne de commande et rencontrer le problème suivant :

Après avoir extrait le fichier, exécutez

Toutefois, il est trop lent sur la course

Le résultat est que rien dans le dossier build-tools, j’ai envie est EMVA et apkbuilder, puisque je veux construire des apk de ligne de commande sans fourmi.

Quelqu'un peut-il m’aider ? Merci d’avance.

486voto

Nate Points 1766

Par défaut, le SDK Manager à partir de la ligne de commande n'inclut pas les outils de construction dans la liste. Ils sont dans le "obsolète" de la catégorie. Pour voir tous les téléchargements disponibles, l'utilisation

android list sdk --all

Et puis pour obtenir de l'un des paquets dans la liste à partir de la ligne de commande, utilisez:

android update sdk -u -a -t <package no.>

Où u désigne --no-ui, -a représente-tous et t représente --filtre.

Si vous avez besoin d'installer plusieurs paquets:

mise à jour android sdk -u -a-t 1,2,3,4,..,n 

Où 1,2,..,n est le numéro de colis figurant à la liste de commande ci-dessus

141voto

robd Points 1337

Comme mentionné dans d'autres réponses, vous pouvez utiliser l' --filter option pour limiter les paquets installés:

android update sdk --filter ...

Les autres réponses ne pas mentionner que vous pouvez utiliser constante identificateurs de chaîne au lieu de l'index (à modifier) pour les options de filtre. Ceci est utile pour les sans surveillance ou script installe. L'homme pour l' --filter option:

... Ce accepte également les identifiants retourné par la liste des sdk --étendu".

android list sdk --all --extended :

Packages available for installation or update: 97
----------
id: 1 or "tools"
     Type: Tool
     Desc: Android SDK Tools, revision 22.6.2
----------
id: 2 or "platform-tools"
     Type: PlatformTool
     Desc: Android SDK Platform-tools, revision 19.0.1
----------
id: 3 or "build-tools-19.0.3"
     Type: BuildTool
     Desc: Android SDK Build-tools, revision 19.0.3

Ensuite, vous pouvez utiliser le string id que les options de filtre à spécifier précisément les versions que vous souhaitez:

android update sdk --filter tools,platform-tools,build-tools-19.0.3 etc

56voto

Flinbor Points 131

BAD Construire des Outils ne Seront Pas téléchargés automatiquement par la commande mise à jour android sdk --no-ui

Donc, pour l'installation de Buil-type d'Outil (dans la console):

android list sdk --all

Rappelez-vous le nombre qui est répertorié avant le point et d'exécuter les opérations suivantes:

android update sdk -u --all --filter <number>

les commandes doivent être saisies dans /YourFolder/android-sdk-linux/outils

Également un dossier distant (serveur ouvert par ssh par exemple) type:

**./android** list sdk --all
**./android** update sdk -u --all --filter <number>

Pour la simple liste de BAD paquets tapez dans le terminal:

android list sdk

pour installer tous les paquets:

android update sdk --no-ui

Ou avec des filtres (la virgule est le séparateur):

android update sdk --no-ui --filter 3,5,8,14

8voto

Dan Dyer Points 30082

Cependant, il est trop lent dans l'exécution de

Oui, j'ai eu le même problème. Certains des téléchargements de fichiers sont extrêmement lents (ou au moins, ils ont été dans les deux derniers jours). Si vous voulez télécharger tout ce qu'il n'y a pas beaucoup que vous pouvez faire à ce sujet.

Le résultat est que rien dans le dossier build-outils, et je veux, c'est aapt et apkbuilder, car je veux construire apk de ligne de commande sans ant.

Avez-vous jusqu'au bout?

Une chose que vous pouvez faire est de filtrer les paquets qui sont téléchargés à l'aide de l' -t de l'interrupteur.

Par exemple:

tools/android update sdk --no-ui -t platform-tool

Quand j'ai essayé l'autre jour j'ai eu la version 18.0.0 de la construction des outils installés. Pour une raison que la dernière version 18.0.1 n'est pas inclus par ce filtre et la seule façon de le faire est d'installer le tout avec de l' --all de l'interrupteur.

2voto

Jacek Marchwicki Points 408

Construire les outils ne peuvent pas être téléchargés automatiquement par défaut comme dit Nate en http://stackoverflow.com/a/19416222/1104031 post.

Mais j'ai écrit petit outil qui font tout pour vous

J'ai utilisé "s'attendre à" outil de danb dans http://stackoverflow.com/a/17863931/1104031post. Vous avez seulement besoin de android-sdk et python27, expect.

Ce script va installer tous les outils de construction, tous les sdk et tout ce dont vous avez besoin pour la construction automatique:

import subprocess,re,sys

w = subprocess.check_output(["android", "list", "sdk", "--all"])
lines = w.split("\n")
tools = filter(lambda x: "Build-tools" in x, lines)
filters = []
for tool in tools:
  m = re.search("^\s+([0-9]+)-", tool)
  tool_no = m.group(1)
  filters.append(tool_no)

if len(filters) == 0:
  raise Exception("Not found build tools")


filters.extend(['extra', 'platform', 'platform-tool', 'tool'])

filter = ",".join(filters)

expect= '''set timeout -1;
spawn android update sdk --no-ui --all --filter %s;
expect {
  "Do you accept the license" { exp_send "y\\r" ; exp_continue }
  eof
}''' % (filter)

print expect

ret = subprocess.call(["expect", "-c", expect])
sys.exit(ret)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X