我有错误,当我开始运行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.

当前回答

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


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


寻找SDK


来自包管理器


如果您正在使用基于包的JRE安装,例如通过基于debian的发行版中的自定义PPA安装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安装指示将文件夹放置位置留给您。


Android Studio 2.2


最后,如果你使用的是Android Studio, SDK将放置在你设置的位置,即放置通过Studio的SDK管理器下载的SDK文件。通过去文件>设置>外观和行为>系统设置> Android SDK,你可以发现SDK的位置设置在顶部的选项进行更改,默认文件夹为~/Android/ SDK。

设置SDK路径

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


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


这个方法非常简单,所需要的就是在本地创建文件。在下面的文件夹中,Project_Folder是你的React-Native应用的基础:

Project_Folder / Android应用程序

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

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

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

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


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


The other option is to set the SDK folders to the local environment variables that React-Native looks for by default. To do so, we will add the ANDROID_HOME path. As a bonus we can also add our android tools in the same place. We need to add this to rather the .bash_profile or .profile files in our home directory, which are loaded last, so we can make sure that nothing else is overriding the settings we make. Since these are in your home directory, there is no need to edit with escalated privileges.

**$ 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命令,并观察应用程序构建过程继续前进。


如果你还有问题


If for some reason you receive the error "> failed to find target with hash string 'android-23' in: your/sdk/folder, you need to make sure that the project's build version and the version of the SDK installed match (React-Native defaults to 23.0.1). You can find the default version in Project_Folder/android/app/build.gradle, and then searching for buildToolsVersion. You can of course change the version from this file, or in Android Studio go to File > Project Structure to change the Project SDK. I would not suggest changing this version unless you absolutely know what you are doing, otherwise install the SDK version the project is looking for.

其他回答

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

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

简单地运行你的react原生Android项目在Android工作室,它会自动生成你的本地。属性文件在react原生Android项目。 a.进入React-native Project -> Android b.新建文件local.properties c.打开文件 d.像下面这样粘贴Android SDK路径

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

出口ANDROID_HOME = /用户/笔记本/图书馆/ Android sdk

转到react-native项目的android/目录 创建一个名为local的文件。这一行的属性:

sdk.dir = /Users/USERNAME/Library/Android/sdk

USERNAME是你的macOS用户名

如果你在windows上转义(添加反斜杠到)反斜杠和冒号在android/local。属性文件。如果没有,就创建一个

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