web-dev-qa-db-fra.com

SDK.DIR est manquant? Projet de mise à jour Android?

Je reçois cette erreur quand je le fais 

$ ant release
sdk.dir is missing. Make sure to generate local.properties using 'Android update project' or to inject it through an env var

en tapant dans le projet de mise à jour Android, je reçois une autre erreur en disant que je dois spécifier le chemin d'accès .... au projet. 

Ensuite, j'essaie de cd dans le répertoire de mon projet et fais 

Android update -p .
Android update -path . 

etc et il est dit que -p et -path ne sont pas reconnus globalement. 

Quelqu'un pourrait-il me donner la syntaxe exacte?

39
Code Droid

accédez au répertoire du projet et exécutez les opérations suivantes: Le projet Word fait partie de la commande et ne doit pas être remplacé par un nom de projet réel. La documentation ne le dit pas clairement et devrait être améliorée. 

   Android update project -p .
29
Code Droid

Vous pouvez utiliser l'argument de ligne de commande pour définir le sdk.dir, par exemple:

ant -f xyz/build.xml clean release -Dsdk.dir=/Applications/adt-bundle-mac/sdk/
27
artkoenig

Vous pouvez utiliser sdk.dir dans le fichier projet.properties pour définir le répertoire principal du sdk ou utiliser une variable d’environnement (plus flexible pour le travail d’équipe).

export Android_HOME=<the path to your sdks>
24
Snicolas

Vous pouvez injecter la variable d'environnement Android_HOME dans la propriété sdk.dir à l'aide de la commande ant suivante.

$ ant debug -Dsdk.dir=$Android_HOME

Android_HOME doit être un chemin absolu tel que /Users/jameswald/Development/Android-sdk-macosx.

13
James Wald

J'ai eu le même problème. Après avoir flâné avec les commandes en ligne de commande pendant quelques minutes, j'ai fini par éditer directement les fichiers local.properties.

Vous devriez avoir un fichier appelé local.properties dans votre

<app-directory>\platforms\Android

dossier. Si vous n'en avez pas, vous pouvez le créer.

Dans le fichier, il devrait y avoir une référence qui spécifie où ant peut trouver votre sdk Android. Ça devrait ressembler à ça:

sdk.dir=C:\\<path-to-sdk>\\sdk

Il suffit de mettre à jour vos informations pour le diriger vers votre dossier Android sdk correct.

Les doubles\sont présents dans mon dossier. Je ne sais pas pourquoi mais cela semble fonctionner. :)

Remarque: ce fichier doit également être copié dans votre dossier CordovaLib, qui est un dossier plus profond: <app-directory>\platforms\Android\CordovaLib

6
strttn

Cela devrait créer/corriger le fichier local.properties de ant:

Projet de mise à jour Android --name --target --chemin 

Le paramètre name est facultatif

target est la version de l'API

Plus d'informations ici https://developer.Android.com/tools/projects/projects-cmdline.html#UpdatingAProject

2
rallat

Android update project -p . pourrait résoudre votre problème. Parfois, une fois que vous exécutez Android update project -p ., vous pourriez vous retrouver avec un O/P comme ceci. 

Updated local.properties
----------
build.xml: Failed to find version-tag string. File must be updated.
In order to not erase potential customizations, the file will not be automatically regenerated.
If no changes have been made to the file, delete it manually and run the command again.
If you have made customizations to the build process, the file must be manually updated.
It is recommended to:
    * Copy current file to a safe location.
    * Delete original file.
    * Run command again to generate a new file.
    * Port customizations to the new file, by looking at the new rules file
      located at <SDK>/tools/ant/build.xml
    * Update file to contain
          version-tag: custom
      to prevent file from being rewritten automatically by the SDK tools.
----------
Updated file ./proguard-project.txt
It seems that there are sub-projects. If you want to update them
please use the --subprojects parameter.

Si oui, essayez cette commande Android update project -p . -s

2
Techie

android_HOME doit être placé dans le bon contexte - par exemple, vous l’avez par exemple. sur votre bashrc ne signifie pas que la var est définie lorsque vous lancez en cliquant sur l’icône (bashrc n’est pas exécuté à ce moment-là - mais lorsque vous vérifiez si la variable env est définie sur la console, c’est)

vous pouvez aussi le mettre dans le studio.sh:

#!/bin/sh                                                                                                                               
#                                                                                                                                       
# ---------------------------------------------------------------------                                                                 
# Android Studio startup script.                                                                                                        
# ---------------------------------------------------------------------                                                                 
#                                                                                                                                       

export Android_HOME=/home/ligi/bin/Android-sdk/

message()
{
1
ligi

Oui, aucune de ces solutions n'a fonctionné pour moi. Cela a fait d'ici:

Définition de la variable d'environnement Android_HOME sur Mac OS X

Ouvrez la fenêtre du terminal et entrez ce qui suit (j'espère que c'est le chemin complet vers sdk):

exporter Android_HOME =/Applications/ADT/sdk Une fois cet ensemble défini, vous devez l'ajouter à la variable d'environnement PATH.

export PATH = $ PATH: $ Android_HOME/bin

0
Ryan Knell

J'ai eu le même problème et il s'est avéré que l'un des scripts ant, pour une raison quelconque, faisait référence au chemin codé en dur vers C:\ant et que mon ant était dans C:\Apache-ant-{version}, il ne pouvait pas le trouver. Après avoir renommé le répertoire ant, tout a bien fonctionné.

Pour référence le fichier où j'ai observé ce problème était \Apache-ant-{version}\bin\ant.bat: ligne 106

Edit: J'utilise Windows 8

0
Zee