編集:(aug-2016)
その質問は2013年11月からのものです(Android StudioはまだDeveloper Previewモードになっていました)。
現在(AS v2.2、2016年8月)、インストール中にASはSDKフォルダーを選択するように(またはデフォルトでインストールするように)要求し、自動的にどのプロジェクトを開いているかに適用します。
これは、問題が再現できなくなったため、考えられる回避策または修正方法が関係ないことを意味します。
元の質問:
このプロジェクトには、すでに構成されていて、ラッパーを使用して別の開発者PCで正しく実行されるいくつかのモジュールがあります。私は自分のマシンに完全なgitサブモジュールをクローンしました。
以下は私のコマンドラインを直接印刷したものです。
$ ./gradlew
FAILURE: Build failed with an exception.
* Where:
Build file '/home/budius/project_name/ActionBar-PullToRefresh/library/build.gradle' line: 1
* What went wrong:
A problem occurred evaluating project ':ActionBar-PullToRefresh:library'.
> SDK location not found. Define location with sdk.dir in the local.properties file or with an Android_HOME environment variable.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 6.378 secs
$ echo $Android_HOME
/home/budius/Applications/Android-studio/sdk
$
ご覧のとおり、Android_HOMEがそこにあります。彼らは他に何を望んでいますか?ここで何が問題なのですか。
ubuntu 13.04で動作しています
編集:
私は既にプロジェクトルートにsdk.dir=<path>
を持つlocal.propertiesファイルを作成しました、そしてそれはうまくいきます。しかし、それはコードをサーバーを構築するシステム間で移植することをより困難にするので、問題は未解決のままです。
Android_HOMEが機能していない理由と機能させるにはどうすればよいですか。
私は問題を解決しました。これは私のために働く:
に
/ my_current_project /
local.propertiesというファイルを作成して中に入れ
sdk.dir =/my_current_path_to/sdk
コンソールで私がする必要があります
android_HOME =/my_current_path_to/sdkに設定します。
お役に立てれば。
OSXでは、IntelliJはあなたの.bash_profileや.bash_rcなどで設定した環境変数を拾いません。
これを試して、あなた自身のsdkの場所の値を代入してください:
launchctl setenv Android_HOME /usr/local/opt/Android-sdk
その後IntelliJを再起動して、Bobがおじです。
これは、より一般的に述べられている問題への参照です。 https://emmanuelbernard.com/blog/2012/05/09/setting-global-variables-intellij/
これは私のために働く:
$ export Android_HOME=/path_to_sdk/
$ ./gradlew
Android Gradleプラグインはまだベータ版です。これは単なるバグかもしれません。私にとっては、Android_HOMEの設定は機能しますが、バージョンが異なる場合があります(最新バージョンでもう一度試して、機能するかどうかをお知らせください)。
Android_HOMEだけでなく環境変数Android_SDKも設定する価値があります。
私はいくつかのマシンでこれに関する問題を見ました、それで私たちはそのような場合local.propertiesを作成します - 私はAndroid Studioの最新バージョンがあなたのためにこのファイルを作成しsdk.dirプロパティを記入することに気づきました。
Local.propertiesをバージョン管理にチェックインするべきではないことに注意してください。それがgitignoreに追加されたので、あなたが正当な問題として正当に識別したシステム間でコードを移植することを妨げません。
なんらかの理由で、gradleスクリプトは環境からAndroid_HOMEの値を取得していません。コマンドラインで明示的に指定してみてください
$ Android_HOME=<sdk location> ./gradlew
私はメインモジュールにlocal.propertiesファイルがあり、Android_HOME環境変数がシステムレベルで設定されているのに同じ問題に直面しました。
この問題を修正したのは、メインプロジェクトモジュールにあるlocal.propertiesファイルをプロジェクト全体のルート(つまりメインモジュールの親ディレクトリ)にコピーしたときです
Local.propertiesファイルをモジュールとルートディレクトリの中にコピーしてみてください。うまくいくはずです。
クローンgitリポジトリを開いたときに同じ問題に遭遇しました。 local.propertiesファイルは、各マシンのビルド環境に固有のものであり、したがってリポジトリの一部ではないため、.gitignoreファイルに自動的に追加されます。
解決策は、gitからクローンを作成した後に開くだけでなく、プロジェクトをインポートすることです。これにより、Androidスタジオはあなたのマシンに固有のlocal.propertiesファイルを作成する必要があります。
ファイル>>プロジェクトのインポート>>
MAC OSX:
~/.bash_profile
たす:
export Android_HOME=~/Library/Android/sdk export PATH=${PATH}:${Android_HOME}/tools export PATH=${PATH}:${Android_HOME}/platform-tools
実行します。
source ~/.bash_profile
ターミナルとAndroid Studioを再起動します
MAC OSXでそれをする方法:
1)ターミナルを開いて編集:vi ~/.bash_profile
そこにファイルがなければ、それを追加するだけです。
2)追加(あなたのユーザー名に変更してこれを追加):
#Java var home: Java_HOME="/usr/libexec/Java_home" Android_HOME="/Users/<YOUR USER NAME>/Library/Android/sdk"
3)source ~/.bash_profile
を実行してください。
4)echo $Java_HOME; echo $Android_HOME;
を実行する
5)あなたの出力が:
/usr/libexec/Java_home /Users/<YOUR USER NAME>/Library/Android/sdk
だからあなたはいいです。
そして、Javaがあることを確認してください:)
Java -version
そしてgradle :)
gradle --version
Local.propertiesをルートフォルダにコピーして、もう一度実行してください。
これは私のために働きました(Ubuntu):
Android_HOME=/path/to/Android-sdk
に/etc/environment
を追加してください。
リブート。
windowsでは、Android_HOME = E:\ Android\adt-bundle-windows-x86_64-20131030\sdkと設定します。
Linuxの場合は、sdk.dirを設定する必要があります。
スクリプトは2つの異なる変数を使用します。
あなたがWindowsのPlantformを使用している場合は、管理者としてAndroid Studioを実行してみてください
Linuxでは、端末からstudio.shを実行し、この端末にAndroid_HOMEを設定します。これは私のために働きました。
私は同じ問題を抱えている、サンプルコードはAndroid環境を見つけることができないようではなく、代わりにsettings.gradleからサンプルコードを削除してからインストールがうまく行くことを修正しようとするようです。
その後Eclipseにプロジェクトをインポートするだけです。それがすべてです:)
Local.propertiesファイルが見つからない可能性があります。その場合は、/ local.properties内に 'local.properties'という名前のファイルを追加して、次のようにsdkの場所を指定します。
sdk.dir = C:\ Users \\ AppData\Local\Android\Sdk
Local.propertiesファイル内のsdk.dirを削除し、Android_HOMEを設定するだけです環境変数それは私のために働きました。
シェルにAndroid_HOME =/xxx/xxx /をエクスポートし、それをGradleファイルのSystem.env.Android_HOMEで使用します。
PS:Android_HOMEをグローバルにするための 'export'キーワードを忘れないでください。
私は同じような問題に出くわしました。どういうわけか、私は自分のプロジェクトにビルドフォルダがありませんでした。このフォルダを別のプロジェクトから私が問題を抱えているプロジェクトにコピーすることで、この問題を解決しました。
私はUbuntuで同じ問題に直面しました(local.properties
とAndroid_HOME
の両方が追加されました)が、ビルド失敗は持続しました。そのため、次の行を追加してください。
export Android_HOME=/home/<user>/Android/Sdk export PATH=$PATH:/home/<user>/Android/Sdk/tools
studio.sh
スクリプトに直接(/usr/local/Android-studio/bin
内)
たぶんそれは役に立つでしょう。
あなたは、local.propertiesのバージョン管理が問題を引き起こすと述べました。私は、Androidのコマンドラインツールを使用して、プロダクションに関係するマシン間でlocal.propertiesファイルを更新するスクリプトを一緒にハッキングしました。 Androidアップデートプロジェクトコマンドは、local.properties以外にもたくさん生成します。不要なゴミを(少なくとも私にとっては)これが、スクリプトの最後にあるすべてのrmコマンドの理由です。
#!/bin/bash
scname="$0"
echo "${scname}: updating local properties..."
ln -fs src/main/AndroidManifest.xml
Android update project -t 24 -p "$(pwd)"
echo "${scname}: ...done"
echo "${scname}: removing Android update project junk ..."
rm -v project.properties
rm -v build.xml
rm -v proguard-project.txt
rm -v AndroidManifest.xml
echo "${scname}: ...done"
このスクリプトは、コーディングを行った新しいマシンで最初に実行するものです。ルートプロジェクトディレクトリで実行する必要があります。もちろん、Android Studioにはこれを扱うためのGUIの方法があるかもしれませんが、別のエディターを使用しているのでわかりません。私はまた、その解決策が一般的であると主張することはできませんが、それは "私のために働く"(tm)です。
解決策:
1 "sdk.dir = path_of_sdk"を追加します
2次のようにevn変数を付けてgradlewを実行します。
$ Android_HOME = path_of_sdk ./gradlw
私は、Android_HOMEをシステム全体の変数として追加することで、まったく同じ問題を解決しました。 Ubuntuではそれがあるはずです / etc/profile またはシェルスクリプトファイルで /etc/profile.d/
その後、ログアウトして再度ログインします。GradleはAndroid_HOME変数を認識するはずです。
23.0.2の代わりにBuild-Tools 23.0.1をインストールすると、この問題は解決しました。
Windowsの場合
私は同じエラーが発生しましたが、私の場合、私はプロジェクトをクローンしていました、クローンされたプロジェクトは私がその時点でインストールしなかったAndroid API 22で構築されました。私はAPI 22のSDKツールをダウンロードする必要がありました