SDK位置未找到。在local.properties文件中使用sdk.dir定义位置或使用ANDROID_HOME环境变量。

561
最近我试图从谷歌开发者网站下载示例 Android 游戏并导入它们到 Android Studio 中,但在导入后,我遇到了以下错误:
“错误:未找到 SDK 位置。请使用 local.properties 文件中的 sdk.dir 或 ANDROID_HOME 环境变量来定义位置。”
这是什么意思?我想要在 Android Studio 中运行这些示例程序。

4
请查看此链接:http://xinyustudio.wordpress.com/2014/07/02/gradle-sdk-location-not-found-the-problem-and-solution/ 该链接解决了“Gradle SDK位置未找到”的问题,希望对你有所帮助。 - IntelliJ Amiya
sdk.dir已经设置但仍无法工作。 - LF00
未来的访客,请查看此答案 https://dev59.com/0F4c5IYBdhLWcg3wuMJ7#56089502 - Manish
这在我第一次尝试打印“Hello World”时发生了,即使环境变量设置正确,我所做的是在Android Studio中打开android文件夹并点击运行按钮(绿色播放图标),然后它就可以工作了。确保你在执行此操作时Metro正在运行,我认为这是因为我在安装后没有打开过Android Studio,当我在Android Studio中打开android文件夹时,我注意到它更新了一些内容,现在npm run android也正常工作了。 - Inzamam Malik
如果刚刚克隆了git仓库,只需点击文件 -> 与Gradle文件同步项目即可。 - Pavel
如果刚刚克隆了git仓库,只需点击“文件”->“与Gradle文件同步项目” - undefined
53个回答

784

请按照以下步骤操作:

  • 进入你的React-Native项目,然后进入android目录 创建一个名为以下名称的文件:

local.properties

  • 打开该文件并将你的Android SDK路径粘贴如下:

对于Windows用户:

sdk.dir=C:\\Users\\UserName\\AppData\\Local\\Android\\sdk

或者(适用于较新版本的Android Studio / IntelliJ IDEA):

sdk.dir=C\:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
< p >< em >其中USERNAME是您的PC用户名。此外,请确保文件夹名称为sdk或Sdk。

例如:

sdk.dir=C:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
或者:
sdk.dir=C\:\\Users\\USERNAME\\AppData\\Local\\Android\\Sdk

针对Mac用户:

sdk.dir = /Users/USERNAME/Library/Android/sdk

其中USERNAME是您的OSX用户名

对于Linux(Ubuntu)用户:

sdk.dir = /home/USERNAME/Android/Sdk
< p > 其中USERNAME是您的Linux用户名(Linux路径区分大小写:请确保Sdk中的S大小写匹配) < p>如果这不起作用,请在“环境变量”中添加ANDROID_HOME变量,如C:\Users\USER\AppData\Local\Android\Sdk

< p>enter image description here


我正在使用OpenCV,要添加NDK应该怎么做? - Innocent
它有帮助。实际上,这个解决方案在错误提示中就暗示了。我在Mac上使用IntelliJ,在项目结构中我已经设置了SDK正确的路径。那么为什么我还需要在local.properties中设置呢? - Alex Martian
如果您正在使用eas buildexpo build已被弃用),则此方法将不再起作用,您必须在eas.json中定义环境变量,同时安卓SDK的路径可能会有所不同(我没有它在我的主目录中)。 - jave.web
1
添加ANDROID_HOME对我有用,但我必须将其添加到系统变量中。它在用户变量上没有起作用。 - Kiril Dobrev
2
@Hoque MD Zahidul:您的解决方案对我非常有效,它救了我的一天:)。谢谢您。 - Nirmala Sudhir

282

这个项目可能缺少一个 settings.gradle 文件。确保你正在导入的项目中存在该文件。如果不存在,请添加以下内容的 settings.gradle 文件:

include ':app'

保存文件并将其放置在项目的顶级文件夹中。


30
如何判断我的项目缺少settings.gradle文件?该文件通常存储在哪里?在哪里输入include ':app'include ':app'具体是做什么/生成什么?请为您的答案添加更多详细信息。 要判断项目是否缺少settings.gradle文件,可以在项目根目录下查找该文件。settings.gradle文件通常位于项目根目录中,与build.gradle文件相邻。如果文件不存在,则可以手动创建该文件。您可以在settings.gradle文件中包括子项目,这些子项目将包含在构建中。在settings.gradle文件中,输入include ':app'将包括名为“app”的子项目。这通常用于具有多个模块的项目。include ':app'指示Gradle将名为“app”的子项目包含在构建中。这个语句告诉Gradle在编译和构建应用程序时包括该子项目。如果您的项目中没有settings.gradle文件,则需要手动创建一个,并在其中包括所需的子项目。 - Tot Zam
2
@TotZam 它存储在你的项目根目录中。 - Joseph
2
找到了,谢谢。以后参考,我应该在哪里运行 include ':app'?我对 Android 还很陌生,正在摸索中。 - Tot Zam
3
如果您正在使用Android Studio,不需要运行include :app命令,它会让Android Studio添加您的项目模块,这样您就可以直接运行它,无需进一步配置。在settings.gradle文件中添加该行后,Gradle构建并下载包完成后,您会注意到Play按钮变为活动状态。 - Joseph
1
如果您的项目文件夹名称不同,请将其替换为'app'。它可以正常工作。 - Priyank Patel
显示剩余5条评论

180
您只需将local.properties文件复制到项目存储的文件夹中,它就能像魔法一样运行。但请记住,它必须放置在项目存储的根文件夹中。

4
我每次都需要复制它吗?这似乎更像是一种投机取巧的方法,而不是正确的做法。 - pblead26
如果在上述步骤之后出现“您尚未接受许可协议”的错误,请参见此处https://dev59.com/ElkS5IYBdhLWcg3wgXAQ#41078173。 - yashhy
3
可以运作,但是 IntelliJ 不应该自动生成这个吗?谢谢! - cesarsicas
4
这对我无效。文件存在,但我仍然遇到错误。 - rommex
2
只需通过Android Studio打开android文件夹,当Android Studio打开“android”文件夹时,local.properties将自动创建。 - MING WU
显示剩余4条评论

84
请按照以下步骤进行操作,这对我很有效:
  1. 进入你的项目 -> Android
  2. 创建一个名为local.properties的文件
  3. 打开该文件
  4. 根据操作系统粘贴你的Android SDK路径:

4.a Windows

 sdk.dir = C://Users//USERNAME//AppData//Local//Android//sdk

4.b Linux或MacOS
sdk.dir = /home/USERNAME/Android/sdk

USERNAME 替换为您的用户名

1
现在评论有点晚了,但我想知道如何在MacOS上实现这个? - Nauman Moazzam
在 MacOS 中,您需要执行相同的过程,只需找到您的 Android SDK 文件路径并将其粘贴到 local.properties 文件中即可...就这样。 - Riead Ahmed Bhiyan
我刚才去了文件>项目结构,发现SDK位置不正确,并在MacOS上为我修复了它。 - Anton Plebanovich
在Windows中,路径应该使用双斜杠表示,例如sdk.dir = C:\Users\USERNAME\AppData\Local\Android\sdk。 - Lama

56

请查看您的 local.properties 文件

sdk.dir=C\:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk

正确地编写这种格式,还要检查使用路径时的斜杠 /


我用这个sdk.dir=C:\Users\sameer\Android\adt-bundle-windows-x86-20140702\sdk编辑了local.properties文件,这里有任何错误吗? - Sameer Shamsudeen
是的,在C后面加上\ ... 用这个希望完成。sdk.dir=C:\Users\sameer\Android\adt-bundle-windows-x86-20140702\sdk - Qutbuddin Bohra
这在eclipse中很好用。只需在下载的项目中创建local.properties文件并粘贴sdk.dir即可。在我的情况下,它是:"sdk.dir=C:\adt-bundle-windows-x86_64-20140321\sdk"。 - George Papatheodorou
我已经在我的Windows 10电脑上安装了Android,但是没有这样的文件夹sdk.dir=C:\Users\USERNAME\AppData\Local\Android? - Rohan Gala
我的Android SDK在D:\Tools\Android目录下,而不是C:\。设置sdk.dir=D:\Tools\Android不起作用。 - Mayur Baldha
显示剩余2条评论

48

如果您点击“运行应用程序”(绿箭头)并在编辑配置对话框中获得以下错误:

错误:请选择 Android SDK

在 Android Studio 中执行以下操作:

  1. 从菜单中选择文件 > 设置
  2. 在设置对话框中,转到外观和行为 > 系统设置>Android SDK
  3. 在顶部查看Android SDK位置,然后单击编辑按钮。
  4. 单击下一步,下一步,完成,接受默认值。

这似乎会将SDK位置保存到某个内部位置 - 即使没有任何更改。我检查了.idea.gradle文件夹,但没有看到Studio更改配置文件的内容 - 但现在我可以运行该应用程序了。

总结之前的修复方法 - 这些通常适用于没有构建问题的存储库:

  • 由Studio复制到根文件夹中的local.properties文件。

  • local.properties文件中的路径具有正确的Android SDK路径 - 在我的情况下是sdk.dir=C:\\android\\sdk (请注意,此路径具有不同的格式 - Studio应基于Android SDK设置对话框中的文本输入字段为您编写此文件)

  • settings.gradle文件存在于存储库中 - 并引用应用程序文件夹(通常为:app)。


7
这是唯一帮助我的事情。步骤三和四非常重要。 - soshial
1
这对我在安装了Android支持的IntelliJ中起作用。 - groo
1
这是答案兄弟。加油啊! - Kimanthi K.
1
这个答案 = 黄金。谢谢! - Brittany
1
这是对我有效的方法,应该放在更高的位置。 - Kidades

45
当您尝试从../app/build.gradle文件导入Android Studio项目时,会遇到此问题。
请通过选择位于项目根目录中的../build.gradle文件来导入项目。

44

我遇到了同样的问题,但是出现了稍微不同的错误消息:

未找到SDK位置。请使用ANDROID_SDK_ROOT环境变量或在项目的本地属性文件中设置sdk.dir路径来定义位置,位于“xxx”处

MAC和ReactNative

添加local.properties

  1. 查找Android SDK位置

/Users/yourMacUserName/Library/Android/sdk
  • rootProject/android/local.properties 下创建 local.properties 文件。

  • 将 SDK 路径添加到该文件中。

  • sdk.dir = /Users/yourMacUserName/Library/Android/sdk
    

    通常情况下,这个方法是有效的,但如果你正在与其他团队成员合作,那么yourMacUserName就会不同。

    或者

    设置ANDROID_SDK_ROOT变量

    1. 编辑你的~/.zshrc~/.bashrc等文件
    2. 添加SDK路径:

    export ANDROID_SDK_ROOT=$HOME/Library/Android/sdk
    
  • 打开一个新的终端选项卡或者执行source ~/.zshrc
  • echo $ANDROID_SDK_ROOT来测试是否正确打印SDK路径。
  • 另外,你也可以添加以下路径: export PATH=${PATH}:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools 以便使用一些有用的命令。


    EAS构建:在“build=>production”(或其他模式)下使用eas.json,确保您有 { "env": { "ANDROID_SDK_ROOT": "/your/path/to/androidSDK" } } - jave.web

    37
    1. 前往你的React Native项目 -> Android文件夹

    2. 创建一个名为local.properties的文件

    3. 打开该文件

    4. 将你的Android SDK路径粘贴到文件中,如下所示

     in Windows sdk.dir = C:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
    
     in macOS sdk.dir = /Users/USERNAME/Library/Android/sdk
    
     in linux sdk.dir = /home/USERNAME/Android/Sdk
    
  • 将用户名替换为您的用户名

  • 现在,在终端中运行react-native run-android

  • 或者

    有时项目可能缺少settings.gradle文件。 请确保从您导入的项目中存在该文件。 如果没有,请使用以下内容添加settings.gradle文件:

    include ':app'
    

    保存文件并将其放置在项目的顶级文件夹中。


    21

    如果您在拉取一个 React Native 项目时遇到这个问题,您只需要使用 Android Studio 打开该项目的 Android 项目即可。一切所需内容将会自动创建。

    • 打开 Android Studio
    • 选择“文件” -> “打开”
    • 选择您的 React Native 项目文件夹下的 android 文件夹
    • 等待 Android Studio 完成设置
    • 现在您可以关闭 Android Studio

    或者

    如果您已经安装了Android Studio 命令行启动器

    • 在您的 React Native 根目录中运行以下命令
    studio android/
    
    • 等待Android Studio完成安装设置
    • 现在可以关闭Android Studio了

    1
    这个答案太被低估了。我已经来过两次了,它都解决了我的问题。非常感谢。 - Manish
    1
    @Manish 而且显然有人以某种奇怪的理由将其标记为低质量 - undefined

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接