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:

  1. 打开terminal并编辑文件:

~/.bash_profile

加上:

export ANDROID_HOME=~/Library/Android/sdk export PATH=${PATH}:${ANDROID_HOME}/tools export PATH=${PATH}:${ANDROID_HOME}/platform-tools

  1. 跑:

    source ~/.bash_profile

  2. 重新启动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.propertiesANDROID_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:

  1. 将ANDROID_HOME添加到环境variables中:ANDROID_HOME = C:/ Users / YOUR_USERNAME / AppData / Local / Android / sdk
  2. 将%ANDROID_HOME%\ platform-tools添加到PATH。

这个问题是从2013年11月(而Android Studio仍处于开发者预览模式)

目前(AS v2.2,2016年8月)安装期间,AS要求selectSDK文件夹(或者默认安装),并自动应用于您打开的任何项目。

这意味着任何可能的解决方法或修复都是无关紧要的,因为问题不再可以重现。