React Native android构建失败.找不到SDK位置

Pya*_*ein 430 android react-native

我开始运行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.
Run Code Online (Sandbox Code Playgroud)

Rav*_*vin 758

  • 转到android/您的react-native项目的目录
  • 创建一个local.properties使用此行调用的文件:

    sdk.dir = /Users/USERNAME/Library/Android/sdk
    
    Run Code Online (Sandbox Code Playgroud)

    USERNAME您的OSX用户名在哪里

  • 如果您在Windows上`sdk.dir = C:\\ Users \\ USERNAME \\ AppData \\ Local \\ Android \\ sdk` (104认同)
  • 我能够通过从Android Studio运行来解决这个问题.完成后,它可以从命令行运行. (8认同)
  • @PyaeSoneNyein你解决了你的问题吗?我面临着同样的问题.. (3认同)
  • 你们解决了这个问题吗?我现在也正面临这个问题。 (3认同)

Nav*_*T P 389

  1. 转到您的React原生项目 - > 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在您的终端中运行.

  • 我将SDK移动到外部驱动器.使用macOS Sierra为我工作. (4认同)
  • 在linux`sdk.dir =/home/USERNAME/Android/Sdk`中 (4认同)
  • @Chandni确保已安装Android SDK (2认同)

Nis*_*ish 111

您可以尝试添加ANDROID_PATH

export ANDROID_HOME=/Users/<username>/Library/Android/sdk/
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
Run Code Online (Sandbox Code Playgroud)

  • 我已经在环境中使用了"ANDROID_PATH"(Ubuntu,.bashrc文件).但是,由于某些原因,我仍然在解决这个问题.我通过创建`local.properties`并按照其他答案中所述的路径来修复它. (7认同)
  • 这仅适用于Linux和Mac (2认同)
  • 我有一个mac和env var ANDROID_HOME并没有帮助。但是,“ local.properties”确实做到了。 (2认同)

not*_*one 54

打开~/.bash_profile并添加:

 export ANDROID_HOME=~/Library/Android/sdk/
 export PATH=$PATH:~/android-sdks/platform-tools/
 export PATH=$PATH:~/android-sdks/tools/
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 作品.请记住重新启动终端,或键入`source~/.bash_profile`以使新的导出行生效. (7认同)

loc*_*ton 40

不要 更新 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
Run Code Online (Sandbox Code Playgroud)

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

  • 这是最好的答案,无需更改local.properties.适合我的作品 (5认同)
  • 因为如果将此代码签入源代码管理,那么下一个尝试使用它进行构建的人员将最终查看此页面。 (3认同)

小智 29

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


Saj*_*raf 23

如果你在Windows上转义(添加反斜杠)文件中的反斜杠和冒号android/local.properties.如果它不在那里然后创建它

sdk.dir = C\:\\Android\\sdk
Run Code Online (Sandbox Code Playgroud)

  • 对于Windows,Android SDK位于C:\ Program Files \ Android \ android-sdk下 (2认同)

Hit*_*ahu 15

更新了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
Run Code Online (Sandbox Code Playgroud)
  • 更新终端中的更改

source ~/.bash_profile

  • 验证路径:

echo $PATH

  • 确认是否还可以:

adb devices


DBr*_*own 10

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


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


找到你的SDK


从包管理器


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

$ echo $JAVA_HOME
 /usr/lib/jvm/java-8-oracle
Run Code Online (Sandbox Code Playgroud)

手动下载


如果您已通过Java JRE/SDK下载安装,则它将放置在您放置文件夹的任何位置,例如/ home/username /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的位置,现在是时候让本地人知道反应了.


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


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

Project_Folder /安卓/应用

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

sdk.dir=/home/username/Android/Sdk
Run Code Online (Sandbox Code Playgroud)

虽然这是解决问题的最简单方法,但它并不是最好的,特别是如果您使用多个项目.对于每个项目,您必须为每个项目创建此文件,并且如果文件夹更改了为每个项目的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)
Run Code Online (Sandbox Code Playgroud)

在文件中添加以下行,将SDK文件夹替换为您在上面找到的行.我将使用Android Studio文件夹作为示例:

export ANDROID_HOME="~/Android/Sdk"
export PATH=$PATH:~/Android/Sdk/tools:~/Android/Sdk/platform-tools
Run Code Online (Sandbox Code Playgroud)

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

$ source ~/.profile
$ echo $ANDROID_HOME
/home/dbrown/Android/Sdk
Run Code Online (Sandbox Code Playgroud)

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


如果你还有问题


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


Oze*_*esh 10

对于Windows用户

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

  1. 转到Enviromnent变量.(您的电脑>属性)
  2. 创建新的系统变量
  3. 变量名称设置为ANDROID_HOME
  4. Variable值设置为Android Sdk Location
  5. 按OK(3个对话框3次)

注意:

你的Android Sdk一般位于

C:\ Users \用户YourUserName \应用程序数据\本地\的Android\SDK

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


Pra*_*rma 9

此答案适用于MacOs Catalina用户,zsh因为您的 Mac 现在使用 zsh 作为默认登录 shell 和交互式 shell。

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

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

sdk.dir=/Users/<youcomputername>/Library/Android/sdk
Run Code Online (Sandbox Code Playgroud)

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

  1. ~/.zshrc使用代码编辑器打开。就我而言,我使用 vim
vim ~/.zshrc
Run Code Online (Sandbox Code Playgroud)
  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
Run Code Online (Sandbox Code Playgroud)

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

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

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

source ~/.zshrc
Run Code Online (Sandbox Code Playgroud)

在我的情况下,我得到了这个。我希望这可以帮助你。


小智 7

在Ubuntu上,在那里你必须从Android工作室分别获得SDK 奇怪的路径将与Android的工作室工作,但与本土做出反应,你需要创建一个文件名local.properties.

比如inn ~/AwesomeProject/android并插入这一行:
sdk.dir=/path/to/sdk/in/your/computer


hoi*_*hoi 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
Run Code Online (Sandbox Code Playgroud)


Zai*_*shi 7

local.properties从你的 React 项目中的android文件夹中删除并尝试。

我已经做到了并成功了。


Mak*_*vin 6

在您的local.properties文件中签出:

sdk.dir=C\:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
Run Code Online (Sandbox Code Playgroud)

格式是否正确


Kei*_*van 5

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

sdk.dir = /home/[YOUR_USERNAME]/Android/Sdk
Run Code Online (Sandbox Code Playgroud)