开始运行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.
转到您的 react-native 项目的 android/ 目录
使用以下行创建一个名为 local.properties 的文件:
sdk.dir = /Users/USERNAME/Library/Android/sdk
其中 USERNAME
是您的 macOS 用户名
转到您的 React-native 项目 -> Android 创建一个文件 local.properties 打开文件粘贴您的 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.dir=/home/USERNAME/Android/Sdk
您可以尝试添加 ANDROID_PATH
export ANDROID_HOME=/Users/<username>/Library/Android/sdk/
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
ANDROID_PATH
(Ubuntu、.bashrc 文件)。但是,由于某些原因,我仍然遇到问题。我通过创建 local.properties
并按照其他答案中的说明放置路径来修复它。
local.properties
做到了。
.env
中添加了基本相同的东西,现在 react-native run-android
至少启动了模拟器。我有 ANDROID_HOME=$HOME/Library/Android/sdk/; PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
但在两条线上。
打开 ~/.bash_profile
并添加:
export ANDROID_HOME=~/Library/Android/sdk/
export PATH=$PATH:~/android-sdks/platform-tools/
export PATH=$PATH:~/android-sdks/tools/
源〜/ .bash_profile
https://i.stack.imgur.com/OMxtg.png
source ~/.bash_profile
使新的导出行生效。
我认为不建议更新 local.properties
文件来添加缺少的环境变量。
更新您的环境变量:
如何从 iTerm2 打开 OSX 上的 AVD 管理器?
机器人 28 / 机器人 30
sdk 可以安装在 /Library/Android/sdk 或 /usr/local/ 以确保通过
which sdkmanager
导出 ANDROID_HOME
export ANDROID_HOME=$HOME/Library/Android/sdk
或者
export ANDROID_HOME="/usr/local/share/android-sdk"
然后将其添加到 $PATH
export PATH=$ANDROID_HOME/tools:$PATH
export PATH=$ANDROID_HOME/platform-tools:$PATH
export PATH=$ANDROID_HOME/build-tools/28.0.1:$PATH
机器人 23
export ANT_HOME=/usr/local/opt/ant
export MAVEN_HOME=/usr/local/opt/maven
export GRADLE_HOME=/usr/local/opt/gradle
export ANDROID_HOME=/usr/local/share/android-sdk
export ANDROID_SDK_ROOT=/usr/local/share/android-sdk
export ANDROID_NDK_HOME=/usr/local/share/android-ndk
export INTEL_HAXM_HOME=/usr/local/Caskroom/intel-haxm
我使用 brew cask
在 these instructions 之后安装 Android SDK。
更多信息参见https://developer.android.com/studio/intro/update#sdk-manager
source ~/.bash_profile
以更新/刷新当前终端会话。
zsh
,所以将上面的行写入 $HOME/.zshrc
。
echo "sdk.dir = /Users/$(whoami)/Library/Android/sdk" > android/local.properties
如果您使用的是 Windows 转义(添加反斜杠),则 android/local.properties
文件中的反斜杠和冒号。如果它不存在然后创建它
sdk.dir = C\:\\Android\\sdk
更新了 React Native0.58 在 MAC/Unix 上入门的步骤
在终端中打开 bash_profile
纳米〜/ .bash_profile
滚动到底部并从 https://facebook.github.io/react-native/docs/getting-started 添加以下行:
export ANDROID_HOME=$HOME/Library/Android/sdk export PATH=$PATH:$ANDROID_HOME/emulator export PATH=$PATH:$ANDROID_HOME/tools export PATH=$PATH:$ANDROID_HOME/tools/bin export PATH=$PATH:$ ANDROID_HOME/平台工具
Control+S to save
Control+X to exit
Y to save changes
更新终端中的更改
源〜/ .bash_profile
验证路径:
回声 $PATH
确认是否一切正常:
亚行设备
对于 Windows 用户
一种简单的解决方案是将 SDK 路径设置为环境变量列表。
转到环境变量。 (您的 PC > 属性)创建新的系统变量 将变量名称设置为 ANDROID_HOME 将变量值设置为您的 Android Sdk 位置 按 OK(3 个对话框的 3 次)
笔记:
您的 Android Sdk 通常位于
C:\Users\YourUserName\AppData\Local\Android\Sdk
确保关闭当前终端,因为您的终端包含所有预先存在的环境变量。
修复 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
手册下载
如果您通过 Java JRE/SDK 下载安装,它将位于您放置文件夹的任何位置,例如 /home/username/jdk-8u121_1.8.0(或类似的东西)。
脚本安装甚至可以将 SDK 添加到 /opt/java-8-oracle,但在撰写本文时,Java 安装说明将文件夹位置留在您手中。
安卓工作室 2.2
最后,如果您使用的是 Android Studio,SDK 将放置在您设置的位置,以放置通过 Studio 的 SDK 管理器下载的 SDK 文件。通过转到文件 > 设置 > 外观和行为 > 系统设置 > Android SDK,您可以在顶部找到带有更改选项的 SDK 位置设置,默认文件夹为 ~/Android/Sdk。
https://i.stack.imgur.com/7pf1s.png
设置 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 命令,并观察应用程序构建过程继续进行。
如果您仍有问题
如果由于某种原因您收到错误 "> failed to find target with hash string 'android-23' in: your/sdk/folder, 您需要确保项目的构建版本和安装的 SDK 版本匹配(React -Native 默认为 23.0.1). 你可以在 Project_Folder/android/app/build.gradle 中找到默认版本, 然后搜索 buildToolsVersion. 你当然可以从这个文件中更改版本, 或者在 Android Studio 中转到 File > 更改项目 SDK 的项目结构。除非您绝对知道自己在做什么,否则我不建议更改此版本,否则请安装项目正在寻找的 SDK 版本。
此答案适用于 MacOs Catalina
个用户或 zsh
个用户,因为您的 Mac 现在使用 zsh 作为默认登录 shell 和交互式 shell。
如果您遵循 React Native Setting up the development environment
指南的文档。然后执行以下操作。
首先检查 local.properties
文件是否存在。如果该文件不存在,则创建并添加以下行。
sdk.dir=/Users/<youcomputername>/Library/Android/sdk
完成上述更改后,现在执行以下操作。
使用代码编辑器打开 ~/.zshrc。就我而言,我使用 vim
vim ~/.zshrc
为路径添加以下行。
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
确保正确添加上面的行,否则它会给你一个奇怪的错误。
保存更改并关闭编辑器。最后,现在编译您的更改
source ~/.zshrc
我得到这个在我的情况下工作。我希望这可以帮助你。
您必须编写正确的完整路径。不要使用'~/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
在 Ubuntu 上,您必须将 SDK 与 Android Studio 分开获取奇怪,该路径将适用于 Android Studio,但对于 React Native,您需要创建一个文件名 local.properties
。
例如 inn ~/AwesomeProject/android
并插入此行:
sdk.dir=/path/to/sdk/in/your/computer
从您的 react 项目的 android 文件夹中删除 local.properties
并尝试。
我已经做到了并且成功了。
签出您的 local.properties
文件:
sdk.dir=C\:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
格式是否正确
如果您使用的是 Ubuntu,只需转到您的 react-native 项目的 android 目录并创建一个名为 local.properties
的文件并将 android sdk 路径添加到它,如下所示:
sdk.dir = /home/[YOUR_USERNAME]/Android/Sdk
复制系统的其他 android 项目 local.properties 并粘贴到 React-native 项目的 android 文件夹中,它将起作用。
这对我有用。
我正在 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.
我能找到的最佳解决方案如下:
下载您选择的 Android Studio 和 SDK(即使您认为不需要它,请相信我,您需要它来发布 apk 文件和对 android 代码进行一些手动更改)。 File > New > Import ,指向你的 react native android 项目所在的位置。如果它要求您下载任何特定的 SDK,请下载相同的。它可以要求您更新 gradle 等...请在需要的地方继续更新。如果您有一个现有的 Android SDK 并且您知道版本,那么您所要做的就是在您的 android 项目的 build.gradle 下匹配该版本。
这是 gradle 文件的样子:
https://i.stack.imgur.com/DI5FY.png
如果您的机器设置一切顺利,并且您可以使用 Android Studio 编译项目,那么没有什么可以阻止您通过 react-native cli build android 命令构建您的应用程序。
通过这种方法,您不仅可以解决 SDK 的问题,还可以解决许多与 Android 开发的机器设置相关的问题。导入会自动查找 SDK 位置并创建 local.properties。因此,您无需担心人工干预。
对于 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
项目,您可以看到在项目根目录中创建了一个 local.properties
文件。当您创建一个反应原生项目时,它不会为您创建该文件。所以你必须手动创建它。并且必须向其中添加 skd 目录。因此,在 android 文件夹(在根目录上)中创建一个新文件。并把你的 sdk 路径像这样 sdk.dir=D\:\\Android\\SDK\\android_sdk_studio .
记住:删除单 \ 和双。就像上面一样。
如果 local.properties 文件丢失,只需在“project/android”文件夹中使用“sdk.dir=/Users/apple/Library/Android/sdk”创建一个,并确保您的 SDK 在该位置。
要在 mac 上创建具有自定义扩展名的文件,请参阅以下链接
How do I save a TextEdit (mac) file with a custom extension (.sas)?
有2种方法可以解决这个问题:
在 android studio 中简单地运行你的 react native Android 项目,它会自动在 react native Android 项目中生成你的 local.properties 文件。一个。转到 React-native 项目 -> Android b。创建一个文件 local.properties c。打开文件 D.粘贴您的 Android SDK 路径,如下所示
确保您安装了正确的模拟器和 Android 版本。这为我解决了问题。
在您的项目目录中有一个名为“android”的文件夹,其中有 local.properties 文件。删除文件,构建应该会成功运行
如果您使用的是 mac,则需要导出您的 sdk 路径。只需将 Macbook 替换为您的系统名称,然后粘贴到终端中。 “临时使用”
导出 ANDROID_HOME=/Users/MacBook/Library/Android/sdk
在 Android/
中创建一个名为 lcoal.properties 的文件并粘贴以下路径。
sdk.dir = /Users/jotnosqh/Library/Android/sdk (for linux)
有两个 gradle 文件,在 C:\myapp\android\build.gradle 中更改一个,而不是在父目录 myapp 中。
将 23.0.1 替换为您在我的案例 25.0.0 中安装的 Android Build Tool 版本
运行 react-native run-android 以在模拟器中查看您的应用。
复制系统的其他 android 项目 local.properties 并粘贴到 React-native 项目的 android 文件夹中,它将起作用。
sdk.dir=C\:\\Users\\paul\\AppData\\Local\\Android\\Sdk
只需通过 Android Studio 在项目中打开文件夹 android。 Android Studio 创建必要的文件(local.properties)并下载 SDK 版本以运行所需的 android。
sdk.dir = C:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
上