React Native android构建失败。未找到SDK位置

我有错误,当我开始运行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.
469017 次浏览
  • 转到react-native项目的android/目录
  • 创建一个名为local.properties的文件,如下所示:
sdk.dir = /Users/USERNAME/Library/Android/sdk

哪里USERNAME是你的macOS用户名

您可以尝试添加ANDROID_PATH

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

将系统中的其他android项目复制到本地。属性和粘贴在React-native项目的android文件夹中,它将工作。

如果你在窗口转义(添加反斜杠)反斜杠和冒号在android/local.properties文件。如果没有,就创建一个

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

确保你安装了合适的模拟器和Android版本。这为我解决了问题。

Linux用户

你的应用程序没有得到android-sdk的路径,所以如果你使用linux (ubuntu),那么你需要添加一个名为“local. sdk”的文件。并保存在android文件夹中,这是在你的app文件夹中创建的。

您需要在本地内添加以下行。属性文件,也就是android-sdk的路径它在系统中在系统中运行应用。

# EYZ0

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

你可以打开终端,打字

Sudo nano ~/.bashrc

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

出口ANDROID_HOME = " / opt / android sdk / "

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

# EYZ0

这对我很管用。

我在Udemy上使用Stephen Grider的React Native,其中一个学生在第50课上发布了这个。在命令行中逐字粘贴(当然是w/o '$')。

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

# EYZ0

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

例如,在inn ~/AwesomeProject/android中插入这一行:
# EYZ0 < / p >

打开~/.bash_profile,添加:

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

源~ / . bash_profile

enter image description here

必须填写正确的全路径。 不要使用` ~/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

local.properties文件中检查:

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

格式是否合适

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


您的项目没有通过提供的路径在项目设置中找到SDK设置,因此项目需要指向正确的方向,您有几个选项来完成这一任务,但让我们首先找到正确的SDK文件夹。


寻找SDK


From Package Manager


如果您在基于debian的发行版中通过自定义PPA使用软件包安装JRE,如Java 8 JRE,或使用OpenJDK,则目录很可能是/usr/lib/jvm/java-8-oracle(或您选择的任何版本)。你可以在JAVA_HOME环境变量中找到这个路径:

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

< em >手动下载< / em >


如果你通过Java JRE/SDK下载安装,它将在你放置文件夹的任何地方,例如/home/< < /强> >用户名/ jdk-8u121_1.8.0强劲(或类似的东西)。

脚本安装甚至可以将SDK添加到/ opt / java-8-oracle,但是在撰写本文时,Java安装指示将文件夹放置位置留给您。


Android Studio 2.2


最后,如果你使用的是Android Studio, SDK将放置在你设置的位置,即放置通过Studio的SDK管理器下载的SDK文件。通过转到>文件设置>外观&行为>系统设置> Android SDK,你可以在顶部找到SDK位置设置,并可以选择更改,默认文件夹是~ / Android Sdk

Android Studio SDK Path

设置SDK路径

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


选项1:使用local.properties进行设置


这个方法非常简单,所需要的就是在下面的文件夹中创建文件local.properties,其中Project_Folder是你的React-Native应用程序的基础:

Project_Folder / Android应用程序

在你的地方。属性,您需要设置变量sdk。dir到你的SDK文件夹的路径:

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

虽然这是解决问题的最简单方法,但并不是最好的方法,特别是如果您要处理多个项目。对于每个项目,都必须为每个项目创建此文件,如果文件夹更改,则计划为每个项目的local.properties更改此文件。

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


选项2:使用环境变量设置文件夹


另一种选择是将SDK文件夹设置为React-Native默认查找的本地环境变量。为此,我们将添加ANDROID_HOME路径。作为奖励,我们还可以在同一位置添加我们的android工具。我们需要将其添加到主目录中的.bash_profile或.profile文件中,这些文件是最后加载的,这样我们就可以确保没有其他内容覆盖我们所做的设置。因为这些都在您的主目录中,所以不需要使用升级权限进行编辑。

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

在该文件中添加以下行,将SDK文件夹替换为上面找到的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命令,并观察应用程序构建过程继续前进。


如果你还有问题


如果由于某种原因您收到错误“>无法在:your/sdk/文件夹中找到hash字符串为“android-23”的目标”,您需要确保项目的构建版本和安装的SDK版本匹配(React-Native默认为23.0.1)。您可以在Project_Folder / android / app / build.gradle中找到默认版本,然后搜索buildToolsVersion。你当然可以从这个文件中更改版本,或者在Android Studio中转到文件>项目结构来更改项目SDK。我不建议更改这个版本,除非你完全知道你在做什么,否则安装项目正在寻找的SDK版本。

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

将23.0.1替换为安装在我的案例中25.0.0的Android构建工具版本

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

  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
    • 李< / ul > < / >

用用户名替换USERNAME

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

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

  1. 下载你选择的Android Studio和SDK(即使你认为你不需要它,相信我,你会需要它来释放apk文件和一些手动更改android代码)。
  2. 文件>新建>导入,指向react原生android项目所在的位置。
  3. 如果它要求你下载任何特定的SDK,那么请下载相同的。它可以要求你更新gradle等等。有需要的地方请继续更新。
  4. 如果你有一个现有的Android SDK,你知道版本,那么你所要做的就是匹配正在构建的版本。你的android项目的Gradle。

这是gradle文件看起来的样子:

enter image description here

如果你的机器设置一切顺利,你可以使用Android Studio编译项目,那么没有什么会阻止你通过react-native cli build Android命令构建你的应用程序。

使用这种方法,您不仅可以解决SDK的问题,还可以解决与Android开发的机器设置相关的许多问题。导入将自动找到SDK位置并创建local.properties。因此,您不需要担心人工干预。

将系统中的其他android项目复制到本地。属性和粘贴在React-native项目的android文件夹中,它将工作。

sdk.dir=C\:\\Users\\paul\\AppData\\Local\\Android\\Sdk
在项目中通过Android工作室打开android文件夹。 Android studio创建必要的文件(local.properties)并下载SDK版本以运行所需的Android

Windows用户

一个简单的解决方案是将SDK路径设置为environment Variables列表。

  1. 转到环境变量。(您的PC >属性)
  2. 创建系统变量
  3. 变量名设置为ANDROID_HOME
  4. 变量值设置为Android Sdk Location
  5. 按确定(3个对话框3次)

注意:

你的Android Sdk通常位于

< em > C: \ Android用户当地\ YourUserName \ AppData \ \ \ Sdk < / em >

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

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

sdk.dir = /home/[YOUR_USERNAME]/Android/Sdk
在你的项目目录中有一个名为“android”的文件夹,其中有一个local。属性文件。 删除文件,构建将成功运行

如果你创建一个android studio项目,你可以看到一个local.properties文件被创建在你的项目根目录中。当你创建一个react原生项目时,它不会为你创建那个文件。所以你必须手动创建它。然后添加skd dir。所以创建一个新的文件在android文件夹(根)。然后像这样放你的SDK路径 # EYZ0 记住:用双\去掉单\。

更新了React Native0.58在MAC/Unix上启动的步骤

  • 在终端打开bash_profile

纳米~ / . bash_profile

出口ANDROID_HOME = $ HOME /图书馆/ Android sdk

导出路径= $路径:$ ANDROID_HOME /模拟器

导出路径= $路径:$ ANDROID_HOME /工具

导出路径= $路径:$ ANDROID_HOME /工具/ bin

导出路径= $路径:$ ANDROID_HOME /平台工具

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

# EYZ0

  • 验证路径:

# EYZ0

  • 确认是否一切正常:

# EYZ0

我在Windows上,我必须修改sdk路径,不管它在path环境中。变量

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

更改此文件:

MyProject\android\local.properties
如果当地< p >。属性文件丢失, 在“project/android”文件夹中创建一个 的sdk。dir=/Users/apple/Library/Android/sdk',并确保你的sdk在该位置

要在MAC上创建具有自定义扩展名的文件,请参考以下链接

我如何保存一个TextEdit (mac)文件自定义扩展名(.sas)?< / >

问题是您错误地配置了环境变量。你必须使用(在Windows中)SDK: C:\Users\YOUR_USERNAME\AppData\Local\Android\Sdk

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

在第3点的Android开发环境部分选择:React Native CLI Quickstart。配置ANDROID_HOME环境变量

如果您按照您现在拥有的方式来做,您必须配置每个项目以使用您的环境变量,如果项目是在几个人的设备中,则可能会导致问题。如果你按照我告诉你的那样做,你就不必配置任何项目。

从react项目中的安卓文件夹中删除local.properties并尝试它。

我这样做过,而且成功了。

如果你安装了android studio,只需使用android studio打开Project/android,它会通知你在项目中切换SDK位置路径。

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

  1. 简单地运行你的react原生Android项目在Android工作室,它会自动生成你的本地。在react原生Android项目中文件。

  2. <李> < p >。去React-native Project -> Android
    b.新建文件local.properties
    c.打开
    文件 d.像下面这样粘贴Android SDK路径

这个答案是为MacOs Catalina用户或zsh用户,因为你的Mac现在使用zsh作为默认的登录shell和交互式shell。

如果你遵循React Native Setting up the development environment指南的文档。然后执行以下操作。

首先检查local.properties文件是否存在。 如果该文件不存在,则创建并添加以下行

sdk.dir=/Users/<youcomputername>/Library/Android/sdk

在完成上述更改之后,现在执行以下操作。

  1. 使用代码编辑器打开~/.zshrc。在我的例子中,我使用vim
vim ~/.zshrc
  1. 为路径添加以下一行。
export ANDROID_HOME="/Users/<yourcomputername>/Library/Android/sdk"
export PATH=$ANDROID_HOME/emulator:$PATH
export PATH=$ANDROID_HOME/tools:$PATH
export PATH=$ANDROID_HOME/tools/bin:$PATH
export PATH=$ANDROID_HOME/platform-tools:$PATH

确保正确地添加上面的行,否则它会给你一个奇怪的错误。

  1. 保存修改并关闭编辑器。

  2. 最后,现在编译您的更改

source ~/.zshrc

我的情况就是这样。我希望这对你有所帮助。

如果你使用mac,你需要导出你的sdk路径。只需将Macbook替换为您的系统名称,然后粘贴到终端。“暂时使用”;

出口ANDROID_HOME = /用户/ # EYZ1 /图书馆/ Android sdk

创建一个名为lcoal的文件。在Android/中粘贴下面的路径。

sdk.dir = /Users/jotnosqh/Library/Android/sdk (for linux)

这对我来说很有效:如果你安装了Android Studio,你可以在Android Studio中打开项目的Android文件夹。local.properties文件是在Android Studio打开文件夹时自动创建的,你的项目应该在那之后构建。

打开Android Studio 点击“打开现有项目” 在项目文件夹中选择“android”文件夹 按“打开”< / p >