Gradle,Android和ANDROID_HOME SDK位置

Bud*_*ius 147 android gradle android-build android-gradle-plugin

编辑:(aug-2016)

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

当前(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
$ 
Run Code Online (Sandbox Code Playgroud)

所以,你可以看到ANDROID_HOME就在那里.他们还想要什么?这里有什么不对.

在Ubuntu 13.04上运行

编辑:

我已经在sdk.dir=<path>项目根目录上创建了一个local.properties文件,它可以工作.但这使得代码更难以跨系统构建服务器,因此问题仍然存在.

任何人都知道为什么ANDROID_HOME不起作用以及如何使其工作?

小智 94

我已经解决了这个问题.这对我有用:

/ my_current_project /

我创建了一个名为local.properties的文件并放入其中

sdk.dir =/my_current_path_to/SDK

在控制台我需要做

设置ANDROID_HOME =/my_current_path_to/sdk

希望这可以帮助.

  • 它不能解决问题,因为local.properties文件应该是"Local"而不是版本控制.(和Budius一样的问题:我想在我的笔记本电脑中使用这个local.properties文件在开发期间创建构建,但我不想在我的构建机器中使用这个文件,因为sdks路径不一样!) (7认同)
  • 至少在windows上它反斜杠后工作了字符串sdk.dir = D:\\ Soft \\ adt-bundle-windows-x86_64-20140702 \\ sdk (6认同)

Mat*_*men 52

在OSX上,IntelliJ不会获取您在.bash_profile或.bash_rc等中设置的环境变量...

试试这个,替换你自己的sdk位置的值:

launchctl setenv ANDROID_HOME /usr/local/opt/android-sdk

然后重启IntelliJ,鲍勃是你的叔叔.

以下是对该问题的引用,更一般地说明:https: //emmanuelbernard.com/blog/2012/05/09/setting-global-variables-intellij/

  • 仅供参考,此解决方案适用于osx. (4认同)
  • 是的,我在elcapitan为我工作.`launchctl setenv ANDROID_HOME~/Library/Android/sdk` (4认同)
  • 或者,您可以简单地代理环境变量,例如`launchctl setenv ANDROID_HOME $ ANDROID_HOME`和`launchctl setenv JAVA_HOME $ JAVA_HOME`。 (2认同)

Hir*_*tel 29

在我的情况下settings.gradle失踪了.

保存文件并将其放在项目的顶级文件夹中,即使您也可以从其他项目复制.

截图参考:

在此输入图像描述

希望这会节省你的时间.


gio*_*lla 24

这对我有用:

$ export ANDROID_HOME=/path_to_sdk/
$ ./gradlew
Run Code Online (Sandbox Code Playgroud)


ZoF*_*reX 19

Android Gradle插件仍处于测试阶段,这可能只是一个错误.对我来说,设置ANDROID_HOME是有效的,但我们可能会使用不同的版本(请使用最新版本再试一次,如果有效则告诉我).

还值得设置环境变量ANDROID_SDK以及ANDROID_HOME.

我在某些机器上看到了这方面的问题,所以我们在这些情况下创建了local.properties - 我还注意到最新版本的Android Studio将为您创建此文件并填写sdk.dir属性.

请注意,您不应该将local.properties检查到版本控制中,我们已将其添加到我们的gitignore中,这样它就不会干扰在您正确识别为潜在问题的系统之间移植代码.

  • 定义ANDROID_SDK对我没有任何作用. (2认同)
  • 添加`sdk.dir =/path/to/android/sdk`为我工作.我正在运行gradle作为使用IntelliJ 13.0.2创建的项目的一部分 (2认同)

And*_*all 15

无论出于何种原因,gradle脚本都没有从环境中获取ANDROID_HOME的值.尝试明确地在命令行上指定它

$ ANDROID_HOME=<sdk location> ./gradlew
Run Code Online (Sandbox Code Playgroud)


joe*_*zac 14

我遇到了同样的问题,虽然我的主模块中有local.properties文件,而且系统级别设置了ANDROID_HOME环境变量.

解决了这个问题的原因是我将我的主项目模块中的local.properties文件复制到整个项目的根目录(即主模块的父目录)

尝试复制模块和根目录中的local.properties文件.应该管用.


Bul*_*kel 13

打开克隆的git存储库时遇到了同样的问题.local.properties文件会自动添加到.gitignore文件中,因为它特定于每台计算机的构建环境,因此不属于repo.

解决方案是导入项目而不是在从git克隆它之后打开它,这迫使android工作室创建特定于您的机器的local.properties文件:

文件>>导入项目>>


小智 10

MAC OSX:

  1. 打开终端并编辑文件:

~/.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. 重新启动终端和Android Studio


Nim*_*ack 8

如何在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

所以你很好.

和RESTART android studio!

并且,确保你有java :)

java -version

和gradle :)

gradle --version


小智 7

将local.properties复制到根文件夹并再次运行.


Bud*_*ius -3

这个问题来自 2013 年 11 月(当时 Android Studio 仍处于开发者预览模式),

目前(AS v2.2,2016 年 8 月)在安装过程中,AS 要求选择 SDK 文件夹(或安装在默认文件夹中),并且它会自动应用于您要打开的任何项目。

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