React Native Android构建失败。找不到SDK位置


472

我开始运行android时出现错误

What went wrong:
A problem occurred evaluating project ':app'.  
> SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.

Answers:


841
  • 转到android/您的本机项目目录
  • 创建一个local.properties带有以下内容的文件:
sdk.dir = /Users/USERNAME/Library/Android/sdk

USERNAME您的macOS用户名在哪里


*出了什么问题:配置项目':app'时发生问题。> SDK目录“ / usr / local / android-sdk”不存在。但是实际上我的SDK存在于此路径中
— Pyae Sone Nyein

3
你们解决了这个问题吗?我现在也正面临这个问题。
— 加斯珀·科伦茨

8
我可以通过从Android Studio运行来解决此问题。完成后,它可以从命令行运行。
— Gant Laborde

是的,创建local.properties确实解决了我的问题。奇怪但有效。
— Sanj

113
如果您在Windows上sdk.dir = C:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
— Razze'8

421
  1. 转到您的React-native项目-> Android
  2. 建立档案 local.properties
  3. 开启档案
  4. 粘贴您的Android SDK路径,如下所示

    • 在Windows中 sdk.dir = C:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
    • 在macOS中 sdk.dir = /Users/USERNAME/Library/Android/sdk
    • 在Linux中 sdk.dir = /home/USERNAME/Android/Sdk

替换USERNAME为您的用户名

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


4
我将SDK移至了外部驱动器。使用macOS Sierra对我有用。
— ruelluna

4
在linux中sdk.dir=/home/USERNAME/Android/Sdk
— ebin

sdk.dir = / home / USERNAME / Android / Sdk->适用于linux,但是需要存在并运行Linux的Android Studio(gradle运行)
— MarcoZen

显示错误*出了什么问题:配置项目':app'时发生问题。> SDK目录“ / Users / chandni sharma / Library / Android / sdk”不存在。
— Chandni

2
@Chandni确保已安装Android SDK
— a_rahmanshah

116

您可以尝试添加ANDROID_PATH

export ANDROID_HOME=/Users/<username>/Library/Android/sdk/
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

10
我已经ANDROID_PATH在环境中(Ubuntu,.bashrc文件)。但是,由于某些原因,我仍然遇到问题。我通过创建local.properties和放置其他答案中所述的路径来修复它。
— Hesam

3
我有一个mac和env var ANDROID_HOME并没有帮助。local.properties但是。
— 亨里克

60

打开~/.bash_profile并添加:

 export ANDROID_HOME=~/Library/Android/sdk/
 export PATH=$PATH:~/android-sdks/platform-tools/
 export PATH=$PATH:~/android-sdks/tools/

在此处输入图片说明


10
作品。请记住重新启动终端,或键入source ~/.bash_profile使新的导出行生效。
— 猛禽

如果有人无法找到bash_profile,请补充一下,然后为他们无法找到的第一个计时器创建一个(我:p也是如此)
— 窃取农作物的风声

44

不要 更新 local.properties,这绝对是一个坏习惯。

这就是我修复它的方式。在~/.bash_profile或中添加以下内容~/.bashrc。

export ANDROID_HOME=/usr/local/share/android-sdk
export PATH=$ANDROID_HOME/tools:$PATH
export PATH=$ANDROID_HOME/platform-tools:$PATH
export PATH=$ANDROID_HOME/build-tools/23.0.1:$PATH

注意:我曾经按照这些说明brew cask安装Android SDK。


6
那就是最好的答案,无需更改local.properties。最适合我的作品
— mike_dz

为什么这是不好的做法?真正好奇的是,似乎进行本地化更改比更改系统路径更安全
— Robbie Milejczak

8
因为如果将此代码签入源代码管理,那么下一个尝试使用它进行构建的人员将最终查看此页面。
— Dave Welling

31

echo "sdk.dir = /Users/$(whoami)/Library/Android/sdk" > android/local.properties


1
这是最安全的方法,因为您不更改任何全局系统文件。对于那些没有这种类型的管理员访问其计算机的人。
— GravyPlaya '16

23

如果在Windows上,请在android/local.properties文件中转义(添加反斜杠)和反斜杠和冒号。如果不存在,则创建它

sdk.dir = C\:\\Android\\sdk

2
对于Windows,Android的SDK是C下:\ Program Files文件\的Android \ Android的SDK
— 斯特凡

16

更新了React Native0.58的步骤以在MAC / Unix上入门

  • 在终端中打开bash_profile

纳米〜/ .bash_profile

导出ANDROID_HOME = $ HOME / Library / Android / sdk

导出PATH = $ PATH:$ ANDROID_HOME / emulator

导出PATH = $ PATH:$ ANDROID_HOME / tools

导出PATH = $ PATH:$ ANDROID_HOME / tools / bin

导出PATH = $ PATH:$ ANDROID_HOME / platform-tools

Control+S to save
Control+X to exit
Y to save changes
  • 更新终端中的更改

source ~/.bash_profile

  • 验证路径:

echo $PATH

  • 确认是否还可以:

adb devices


拯救了我的生命:)
— 马可·伯罗梅托(Marco burrometo),

有时您需要关闭并重新打开航站楼
— Oluwatobi Samuel Omisakin 19/12/22

14

对于Windows用户

一种简单的解决方案是将SDK路径设置为“环境变量”列表。

  1. 转至环境变量。(您的PC>属性)
  2. 建立新的系统变量
  3. 将变量名称设置为ANDROID_HOME
  4. 设置变量值为您的Android Sdk位置
  5. 按确定(3次显示3个对话框)

注意:

您的Android SDK通常位于

C:\ Users \ YourUserName \ AppData \ Local \ Android \ Sdk

确保关闭当前的终端,因为终端包含所有先前存在的环境变量。


这就对了。无需编辑local.properties,谢谢。
— Rhadamez Gindri Hercilio

1
像魅力😊一样工作。非常感谢!
— kapil pandey

记住要重启机器
— mtoninelli

1
我错过了“关闭您当前的终端机”的机会,我试图几乎放弃了,我再次读了哈哈哈,谢谢!这有效!
— Michimcchicken

11

修复Linux发行版上的SDK路径错误


您的项目没有通过提供的路径在“项目设置”中找到SDK设置,因此该项目需要指向正确的方向,并且您有两个选择来实现此目的,但是让我们首先从找到正确的SDK文件夹开始。


寻找您的SDK


从包管理器


如果您使用的是基于包的JRE安装类似的Java 8 JRE通过自定义的PPA在基于Debian的发行,或使用的OpenJDK,该目录将很可能是/ usr / lib目录/ JVM / java的8甲骨文(或您选择的任何版本)。您可以在JAVA_HOME环境变量中找到此路径集:

$ echo $JAVA_HOME
 /usr/lib/jvm/java-8-oracle

说明书下载


如果通过Java JRE / SDK下载进行安装,则它将放在放置文件夹的位置,例如/ home / 用户名 /jdk-8u121_1.8.0(或类似名称)。

脚本安装甚至可以将SDK添加到/ opt / java-8-oracle中,但在撰写本文时,Java安装说明将文件夹放置在您的手中。


Android Studio 2.2


最后,如果您使用的是Android Studio,则将SDK放置在已设置好的位置,以放置通过Studio的SDK Manager下载的SDK文件。通过转到文件>设置>外观和行为>系统设置> Android SDK,您可以在顶部找到带有更改选项的SDK位置设置,默认文件夹为〜/ Android / Sdk。

Android Studio SDK路径

设置SDK路径

现在我们知道了SDK的位置,是时候让react-native知道了。


选项1:使用local.properties设置


此方法非常简单,只需在以下文件夹中创建文件local.properties,其中Project_Folder是React-Native应用程序的基础:

Project_Folder / Android / App

在您的local.properties中,您想要将变量sdk.dir设置为您的SDK文件夹的路径:

sdk.dir=/home/username/Android/Sdk

尽管这是解决问题的最简单方法,但也不是最好的方法,尤其是当您处理多个项目时。对于每个项目,您都必须为每个项目创建此文件,并且如果文件夹更改计划,则为每个项目的local.properties更改此文件。

保存文件后,重新运行react-native run-android命令。


选项2:带有环境变量的设置文件夹


另一个选项是将SDK文件夹设置为默认情况下React-Native寻找的本地环境变量。为此,我们将添加ANDROID_HOME路径。作为奖励,我们还可以在同一位置添加我们的android工具。我们需要将此文件添加到主目录中的.bash_profile或.profile文件中,这些文件最后被加载,因此我们可以确保没有其他东西会覆盖我们所做的设置。由于这些文件位于您的主目录中,因此无需使用提升的权限进行编辑。

**$ vim ~/.profile**  (use nano or pico if you prefer)

在文件中,添加以下几行,以将SDK文件夹替换为上面找到的文件夹。我将以Android Studio文件夹为例:

export ANDROID_HOME="~/Android/Sdk"
export PATH=$PATH:~/Android/Sdk/tools:~/Android/Sdk/platform-tools

保存文件,然后应用配置文件设置:

$ source ~/.profile
$ echo $ANDROID_HOME
/home/dbrown/Android/Sdk

如果Sdk文件夹显示正确,那么恭喜!重新运行您的react-native命令,并观察应用程序构建过程继续进行。


如果还有问题


如果由于某些原因收到错误“ >未能在您的/ sdk / folder中找到带有哈希字符串'android-23'的目标,则需要确保该项目的构建版本与所安装的SDK版本匹配( -Native默认为23.0.1)。您可以在Project_Folder / android / app / build.gradle中找到默认版本,然后搜索buildToolsVersion您当然可以从该文件更改版本,或者在Android Studio中转到File >项目结构以更改Project SDK。除非您完全知道自己在做什么,否则不建议更改此版本,否则,请安装该项目正在寻找的SDK版本。


7

您必须编写正确的完整路径。不要使用'〜/ Library / Android / sdk'

vi ~/.bashrc

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

source ~/.bashrc

7

在Ubuntu上,您必须从Android Studio单独获取SDK,奇怪的是该路径适用于Android Studio,但对于React Native,则需要创建一个文件名local.properties。

例如inn ~/AwesomeProject/android并插入以下行:
sdk.dir=/path/to/sdk/in/your/computer


4

检入您的local.properties文件:

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

格式是否正确


4

如果您使用的是Ubuntu,只需转到您的react-native项目的android目录并创建一个名为的文件,local.properties并向其添加android sdk路径,如下所示:

sdk.dir = /home/[YOUR_USERNAME]/Android/Sdk

4

local.properties从您的react项目中的android文件夹中删除,然后尝试一下。

我已经做到了,并且成功了。


3

复制系统的其他android项目local.properties并粘贴到React-native项目的android文件夹中,它将起作用。



3

这对我有用。

我正在Udemy上使用Stephen Grider的React Native,其中一位学生在第50讲中发布了此内容。在命令行中逐字粘贴(当然不带“ $”)。

$ export "ANDROID_HOME=/usr/local/opt/android-sdk" >~/.bash_profile

不要这样做。它会导致错误> The SDK directory '/usr/local/opt/android-sdk' does not exist.
— thexande

3

我能找到的最佳解决方案如下:

  1. 下载您选择的Android Studio和SDK(即使您认为不需要它,也请相信我,您将需要它来发布apk文件和对Android代码进行一些手动更改)。
  2. File> New> Import,指向您的本机android项目所在的位置。
  3. 如果它要求您下载任何特定的SDK,请下载相同的SDK。它可能会要求您更新gradle等。请在需要的地方继续进行更新。
  4. 如果您有一个现有的Android SDK,并且知道版本,那么您要做的就是在您的Android项目的build.gradle下匹配该版本。

gradle文件如下所示:

在此处输入图片说明

如果您的机器设置一切顺利,并且您可以使用Android Studio编译项目,那么您将无法通过react-native cli build android命令来构建应用。

通过这种方法,您不仅可以解决SDK问题,而且还可以解决与用于Android开发的计算机设置相关的许多问题。导入将自动找到SDK位置并创建local.properties。因此,您无需担心手动干预。


2

对于Linux用户

您的应用程序未获取android-sdk的路径,因此,如果您使用的是linux(ubuntu),则需要添加一个名为“ local.properties”的文件并将其保存在android文件夹中,该文件夹是在您的应用程序文件夹中创建的。

您需要在local.properties文件中添加以下行,这是您的android-sdk的路径位于系统内部系统内部,以便运行该应用程序。

sdk.dir=/opt/android-sdk/

保存并重新运行命令react-native run-android

要么

你可以打开终端,输入

须藤纳米〜/ .bashrc

并将以下路径粘贴到文件末尾

导出ANDROID_HOME =“ / opt / android-sdk /”

然后重新启动计算机,然后再次运行react-native run-android。

注意:-如果将设置路径放在.bashrc文件中,则甚至不需要创建local.properties文件。


这不应该是硬编码的解决方案,而要取决于Android Studio SDK的安装位置。就我而言,是sdk.dir =“ pathWhereAndroidSDKisbeeninstalled / Android / Sdk”
— Carmine Tambascia

2

如果创建并进行android studio项目创建,则可以看到local.properties在项目根目录中创建了一个文件。当您创建一个react native项目时,它不会为您创建该文件。因此,您必须手动创建它。并且必须添加skd目录。因此,请在android文件夹(位于root上)中创建一个新文件。并按如下所示放置您的sdk路径。 sdk.dir=D\:\\Android\\SDK\\android_sdk_studio . 请记住:删除单\与双。就像上面一样。


2

有两种方法可以解决此问题:

  1. 在android studio中简单地运行您的react native Android项目,它将自动在react native Android项目中生成您的local.properties文件。

  2. 一个。转到React-native Project-> Android
    b。创建一个文件local.properties
    c。打开文件
    d。粘贴您的Android SDK路径,如下所示


1

确保您已安装正确的模拟器和Android版本。那为我解决了问题。


1

在您的项目目录中,有一个名为“ android”的文件夹,并且在其中有local.properties文件。删除文件,构建应该成功运行



0

有两个gradle文件,在C:\ myapp \ android \ build.gradle中更改一个而不是父目录myapp中。

在我的情况下,将23.0.1替换为您安装的Android Build Tool的版本25.0.0

运行react-native run-android在模拟器中查看您的应用。


0

只需通过Android Studio在项目中打开android文件夹即可。Android Studio创建必要的文件(local.properties)并下载运行Android所需的SDK版本。


0

我在Windows上,无论是否在PATH env中都必须修改sdk路径。变量

sdk.dir=C:/Users/MY_USERNAME/AppData/Local/Android/Sdk

更改了此文件:

MyProject\android\local.properties

0

问题是您没有正确配置环境变量。您必须(在Windows中)使用以下SDK:C:\Users\YOUR_USERNAME\AppData\Local\Android\Sdk

有关更多信息:https : //facebook.github.io/react-native/docs/getting-started

选择:在第3点的Android开发环境部分中,React Native CLI快速入门。 ANDROID_HOME环境变量

如果立即执行操作,则必须配置每个项目以使用您的环境变量,并且如果该项目与他们的设备在几个人之间,则可能会引起问题。如果按照我的建议进行操作,则无需配置任何项目。


0

如果您已安装android studio,则只需打开Project/android使用Android Studio即可,它会通知您在项目中切换SDK位置路径。


-2

复制系统的其他android项目local.properties并粘贴到React-native项目的android文件夹中,它将起作用。

sdk.dir=C\:\\Users\\paul\\AppData\\Local\\Android\\Sdk

C \:\\ Users \\ champika \\ AppData \\ Local \\ Android \\ SDK
— champika wishwanath
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.