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.