Gradle,Android和ANDROID_HOME SDK位置
编辑:(aug-2016)
这个问题是从2013年11月(而Android Studio仍处于开发者预览模式)
目前(AS v2.2,2016年8月)安装期间,AS要求selectSDK文件夹(或者默认安装),并自动应用于您打开的任何项目。
这意味着任何可能的解决方法或修复都是无关紧要的,因为问题不再可以重现。
原来的问题:
我们有这个项目已经configuration了几个模块,并在另一个开发人员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上运行
编辑:
我已经在项目根目录下创build了一个sdk.dir sdk.dir=<path>
的local.properties文件,它工作。 但是这使得代码更难跨越系统和构build服务器,所以问题仍然存在。
任何人都知道为什么ANDROID_HOME不工作,怎么办才能使它工作?
我已经解决了这个问题。 这适用于我:
在
/ my_current_project /
我创build了一个名为local.properties的文件,放在里面
sdk.dir = / my_current_path_to / SDK
在控制台中,我需要做的
设置ANDROID_HOME = / my_current_path_to / sdk
希望这可以帮助。
在OSX上 ,IntelliJ不会select你在.bash_profile或.bash_rc等中设置的环境variables。
试试这个,replace你自己的sdk位置的值:
launchctl setenv ANDROID_HOME /usr/local/opt/android-sdk
然后重新启动IntelliJ和鲍勃的你的叔叔。
这里是对这个问题的参考,更普遍地说: https : //emmanuelbernard.com/blog/2012/05/09/setting-global-variables-intellij/
在我的情况下settings.gradle
失踪。
保存文件并将其放在项目的顶层文件夹中,即使您也可以从其他项目中复制文件。
截图参考:
希望这会节省你的时间。
这适用于我:
$ export ANDROID_HOME=/path_to_sdk/ $ ./gradlew
Android Gradle插件仍处于testing阶段,这可能只是一个错误。 对于我来说,设置ANDROID_HOME的作品,但我们可能在不同的版本(请再次尝试使用最新的版本,让我知道它是否有效)。
设置环境variablesANDROID_SDK以及ANDROID_HOME也是值得的。
我在某些机器上看到了这个问题,所以我们在这些情况下创buildlocal.properties – 我也注意到最新版本的Android Studio会为你创build这个文件,并填写sdk.dir属性。
请注意,你不应该检查local.properties到版本控制,我们已经将它添加到我们的gitignore,以便它不会干扰跨系统移植你认为是一个潜在的问题的代码。
无论出于何种原因,gradle脚本没有从环境中获取ANDROID_HOME的值。 请尝试在命令行中明确指定它
$ ANDROID_HOME=<sdk location> ./gradlew
我面临同样的问题,虽然我在我的主模块中有local.properties文件,ANDROID_HOME环境variables设置在系统级别。
什么解决这个问题是当我将我的主要项目模块中的local.properties文件复制到整个项目的根目录(即主模块的父目录)
尝试复制模块内的local.properties文件和根目录。 应该pipe用。
打开克隆的git存储库时遇到了同样的问题。 local.properties文件会自动添加到.gitignore文件,因为它是特定于每台机器的构build环境的,因此不是回购的一部分。
解决的办法是导入项目,而不是从git克隆后打开它,这迫使android studio创build特定于您的机器的local.properties文件:
文件>>导入项目>>
MAC OSX:
- 打开terminal并编辑文件:
~/.bash_profile
加上:
export ANDROID_HOME=~/Library/Android/sdk export PATH=${PATH}:${ANDROID_HOME}/tools export PATH=${PATH}:${ANDROID_HOME}/platform-tools
-
跑:
source ~/.bash_profile
-
重新启动terminal和Android Studio
如何在MAC OSX上执行此操作:
1)打开terminal,编辑: 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;
echo $JAVA_HOME; echo $ANDROID_HOME;
5)如果你的输出是:
/usr/libexec/java_home /Users/<YOUR USER NAME>/Library/Android/sdk
所以你很好。
和RESTART android studio!
而且,确保你有Java 🙂
java -version
和gradle 🙂
gradle --version
将local.properties复制到根文件夹并再次运行。
在Windows中,我设置ANDROID_HOME = E:\ android \ adt-bundle-windows-x86_64-20131030 \ sdk然后它按预期工作。
在Linux中,您需要设置sdk.dir。
该脚本使用两个不同的variables。
这对我有用(Ubuntu):
将ANDROID_HOME=/path/to/android-sdk
到/etc/environment
。
重启。
我有同样的问题,似乎示例代码无法findAndroid环境,而是尝试修复,我只是从settings.gradle中删除示例代码,然后安装进展良好。
之后,只需在eclipse中导入项目,这就是全部:)
在Linux中,尝试从terminal运行studio.sh,并在此terminal中设置ANDROID_HOME。 这对我有效。
只需删除local.preoperties文件中的sdk.dir并设置ANDROID_HOME环境variables即可。 它为我工作。
在shell中导出ANDROID_HOME = / xxx / xxx /,然后在gradle文件中使用System.env.ANDROID_HOME。
PS:不要忘记“导出”关键字,使全局ANDROID_HOME。
您的local.properties文件可能会丢失。 如果是这样,请在/local.properties中添加一个名为“local.properties”的文件,并提供如下的sdk位置。
sdk.dir = C:\用户\\应用程序数据\本地\的Android \ SDK
如果您正在使用windows plantform,请尝试以pipe理员身份运行Android Studio
我刚刚通过添加ANDROID_HOME作为系统variables来解决完全相同的问题。 在Ubuntu中,它应该位于/ etc / profile或/etc/profile.d/中的shell脚本文件中
然后注销并再次login,现在Gradle应该识别ANDROID_HOMEvariables。
我遇到了类似的问题。 不知何故,我的项目中没有build文件夹。 通过从另一个项目复制这个文件夹到我的项目,我遇到了问题,这解决了这个问题。
安装Build-Tools 23.0.1而不是23.0.2为我解决了这个问题。
解决scheme:
1添加“sdk.dir = path_of_sdk”
2用evnvariables执行gradlew,如下所示:
$ ANDROID_HOME = path_of_sdk ./gradlw
你说版本控制local.properties会给你造成问题。 我一起黑了一个脚本,它使用android命令行工具来刷新生产涉及的机器上的local.properties文件。 除了local.properties之外, android update project命令还会产生大量不需要的垃圾(至less对我来说),这就是脚本结尾的所有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工作室可能有一个处理这个GUI的方式,但我不知道,因为我使用不同的编辑器。 我也不能说这个解决scheme是一般的,但它是“为我工作”(tm)。
我在Ubuntu上遇到了同样的问题(包括local.properties
和ANDROID_HOME
),但构build失败仍然存在。 所以解决方法是添加以下行
export ANDROID_HOME=/home/<user>/Android/Sdk export PATH=$PATH:/home/<user>/Android/Sdk/tools
直接到studio.sh
脚本(在/usr/local/android-studio/bin
)
也许这会有帮助。
我遇到了同样的错误,但在我的情况下,我克隆了一个项目,克隆的项目是用Android API 22,我没有安装在当时(我已经安装了API 24和25)……..所以我不得不下载API 22的sdk工具
对于Windows:
- 将ANDROID_HOME添加到环境variables中:ANDROID_HOME = C:/ Users / YOUR_USERNAME / AppData / Local / Android / sdk
- 将%ANDROID_HOME%\ platform-tools添加到PATH。
这个问题是从2013年11月(而Android Studio仍处于开发者预览模式)
目前(AS v2.2,2016年8月)安装期间,AS要求selectSDK文件夹(或者默认安装),并自动应用于您打开的任何项目。
这意味着任何可能的解决方法或修复都是无关紧要的,因为问题不再可以重现。
- 透明AlertDialog具有黑色背景
- onSaveInstanceState()和onRestoreInstanceState()
- 错误:此Android SDK需要Android Developer Toolkit版本22.6.1或更高版本
- 我可以使用视图分页器与视图(而不是片段)
- 如何刷新Android的ListView?
- Android:为什么必须使用getBaseContext()而不是这个
- 我怎样才能得到一个string资源AlertDialog中的可点击的超链接?
- 此Android SDK需要ADT版本23.0.0或更高版本。 当前版本是22.6。 请更新ADT到最新版本?
- 我不能在genymotion模拟器中使用相机