Variable d'environnement dans les paramètres.gradle ne fonctionne pas avec Android Studio
J'ai un multi-module de projet avec un projet de bibliothèque dans un autre chemin d'accès racine. En guise d'illustration, vous pouvez imaginer quelque chose comme ceci:
/projects_home/projects/app_root
|--app/
| |--build.gradle
|--build.gradle
|--settings.gradle
/libraries_home/libraries
|--libA
|--build.gradle
Dans mes paramètres.gradle dossier, je suis en mesure de mettre le chemin absolu pour le projet de bibliothèque en utilisant la projectDir attribut. Cela fonctionne bien à l'intérieur de la console ainsi qu'avec Android Studio.
Mais si j'essaie d'utiliser une variable d'environnement, il s'arrête de fonctionner avec Android Studio. Les paramètres.gradle pour l'exemple ci-dessus ressemblerait à ceci:
include ':app'
include ':libA'
project(':libA').projectDir = new File("$System.env.LIB_ROOT", '/libraries/libA')
Si je de construire avec l'graddle emballage de la console, ça marche toujours. Mais arrête de travailler avec le msg d'erreur suivant:
Gradle 'app' project refresh failed:
Configuration with name 'default' not found.
Si je annuler la variable d'environnement, la version sur console échoue avec le même msg:
* What went wrong:
A problem occurred configuring project ':app'.
> Configuration with name 'default' not found.
Donc je suppose que COMME c'est en quelque sorte de ne pas être en mesure d'accéder aux variables d'environnement définies avec mon ~/.bashrc
N'quelqu'un de vous peut-être une façon de comment je peux faire en tant QUE conscience de mon environnement?
OriginalL'auteur ckihm | 2014-01-16
Vous devez vous connecter pour publier un commentaire.
Android Studio n'est pas de lire les variables d'environnement, de sorte que cette approche ne fonctionnera pas. Aussi, à l'aide de la
projectDir
régime de paramètres.gradle sera probablement causer des problèmes. Android Studio est une limitation que l'ensemble de ses modules ont besoin d'être situé en dessous de la racine du projet. Si vous avez des bibliothèques qui sont utilisés dans de multiples projets, et ils ne peuvent pas être placés sous une seule racine du projet, le meilleur conseil est de les faire publier des Pots ou des AARs à un référentiel Maven local que les projets individuels peuvent ramasser.il fonctionne pour moi: définir la variable dans redémarrage de Windows Système$.env.YOURVARIABLE
veuillez vérifier ma réponse: stackoverflow.com/a/27795843/1592410. L'instruction "tant QUE ne pas lire env vars" n'est pas correct.
ALORS, comment faire u faire android studio de lire à partir de enviornmet variables?
OriginalL'auteur Scott Barta
Android Studio ne lire les variables d'environnement. Vous pouvez le prouver par le lancement d'Android Studio à partir du shell dans lequel ceux env. les variables doivent être spécifiées à la place de X-fenêtre tableau de bord.
La raison pour laquelle vous n'avez pas ces variables est l'environnement X-window vous utilisez n'a pas lu
$HOME/.bashrc
qui contenait ces variables. Cela a un sens parce quebashrc
est pour Bash pas X.Supposent que vous utilisez GNOME ou Unity, pour le lancement d'Android Studio avec les variables d'environnement étant précisé, juste modifier le
.desktop
fichier de Android Studio (par exemple~/.local/share/applications/android-studio.desktop
):Trouver cette ligne:
Le modifier:
Remarque:
Cette modification simplement précéder
env LIB_ROOT=/libraries_home
à la commande d'origine. Vous devez remplacerusername
avec votre propre nom d'utilisateur.Mise à jour
Si vous avez des questions, veuillez laisser un commentaire d'abord au lieu de l'édition de la réponse directement. En particulier, je ne sais pas comment contacter l'éditeur.
OriginalL'auteur changyuheng
Malgré la réponse de Scott Barta est correct, j'ai réalisé qu'il y a un moyen de résoudre mon problème et wan pas à partager ce dans le cas où quelqu'un d'autre a le même exigence.
Je suis maintenant en utilisant la gradle.fichier de propriétés de définir et d'utiliser gradle des propriétés, au lieu des propriétés du système. La documentation de cette fonction peut être condamné à une amende de dans le guide de l'utilisateur
La solution à ma question initiale ressemble maintenant à ceci:
Les paramètres.gradle fichier doit être modifié pour utiliser la gradle propriété à la place du système de la propriété:
Cela fonctionne très bien pour moi, sans tête et avec COMME.
Quelques mots concernant le fait que je travaille avec des modules qui ne sont pas placés sous une racine du projet. Jusqu'à maintenant on dirait QUE ce n'est pas de se plaindre à ce sujet. Mais je viens de commencer à travailler avec cette structure et qu'il est peut-être que je vais courir dans des problèmes plus tard. Ce que j'aime c'est le plus plat de représentation qui est le plus comme je suis habitué à l'avoir avec Eclipse.
Ce qui est également décrite dans le guide de l'utilisateur, est de définir les propriétés système avec le gradle.fichier de propriétés. J'ai essayé ça aussi, mais je n'ai couru dans les mêmes problèmes avec l'aide de variables d'environnement.
Très utile. Merci.
OriginalL'auteur ckihm
Sur Mac, Android Studio n'a pas de lire les variables d'environnement pour une utilisation dans Gradle apparemment. Je crois que c'est la cause de la confusion dans les réponses ici - peut-être qu'il n'sur Windows.
Pour Android Studio pour lire les variables d'environnement, je exécuter l'application à partir de la ligne de commande:
Les autres réponses ici de proposer des solutions autres que l'utilisation de variables d'environnement. Pour ma situation, je suis en utilisant une bibliothèque, je ne l'ai pas écrit nécessite l'utilisation d'une variable d'environnement, et je préfère ne pas modifier leur code de sorte qu'il est plus facile de mettre à jour plus tard.
EDIT: Et, j'ai un dock icône pour lancer Android Studio de cette façon: https://superuser.com/a/260712/501568 explique comment.
OriginalL'auteur manroe
Ça marche pour moi avec les étapes suivantes:
System.env.MYVARIABLE
OriginalL'auteur Karoly
Vous pouvez définir la variable d'environnement en ajoutant:
à
~/Library/Preferences/AndroidStudioX.X/studio.vmoptions
que vous pouvez ouvrir en sélectionnant Aide -> Modifier Personnalisé VM Options... à partir d'Android Studio menu.Et puis vous pouvez l'utiliser comme:
dans construire.gradle ou paramètres.gradle.
Êtes-vous sûr que c'est le bon chemin? Ce fichier s'ouvre lorsque vous sélectionnez Aide -> Modifier Personnalisé VM Options? Avez-vous redémarré Android Studio?
Oui. Quand j'ai cliqué sur Aide > Modifier Personnalisé VM Options... éditeur de demande d'abord de créer un nouveau fichier et puis il a ouvert un dossier dans l'IDE. Cela signifie que le fichier je suis l'édition est correcte. Et Oui, j'ai redémarré Android Studio après j'ai ajouté les propriétés. Mais il n'a pas d'effet.
Si je construire le projet à l'extérieur (via la ligne de commande), j'ai juste à utiliser l'exportation (linux) propriétés avant que je ne gradle construire, il fonctionne.
Pourriez-vous poser la question avec votre
build.gradle
ou de fournir de l'exemple de projet?OriginalL'auteur mixel