反应原生android编译失败。 未findSDK位置

我有错误,当我开始运行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/目录
  • 用这一行创build一个名为local.properties的文件:

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

    USERNAME是你的OSX用户名

您可以尝试添加ANDROID_PATH

 export ANDROID_HOME=/Users/<username>/Library/Android/sdk/ export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools 
  1. 转到您的React本地项目 – > Android
  2. 创build一个文件local.properties
  3. 打开文件
  4. 粘贴您的Android SDKpath,如下所示

    • 在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

用您的用户名replaceUSERNAME

现在,在terminal中运行react-native run-android

打开~/.bash_profile并添加:

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

在这里输入图像说明

如果您在Windows上,则在android/local.properties文件中将反斜杠和冒号android/local.properties 。 如果它不存在,那就创build它

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

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

在Ubuntu上,你必须从Android Studio中单独获取SDK,这个path可以与Android Studio一起工作,但是使用React Native,你需要创build一个名为local.properties的文件。

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

修复Linux发行版中的SDKpath错误


您的项目没有通过提供的path在“项目设置”中findSDK集,所以项目需要指向正确的方向,并且您有几个选项可以完成此任务,但是我们先从find正确的SDK文件夹开始。


find您的SDK


从包pipe理器


如果您正在通过基于 Debian的发行版中的自定义PPA或者使用OpenJDK使用基于包的JRE安装(Java 8 JRE) ,那么该目录很可能是/ usr / lib / jvm / java-8-oracle (或无论你select什么版本)。 你可以在JAVA_HOME环境variables中find这个path:

 $ 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 Manager下载的SDK文件的位置。 通过转到文件>设置>外观和行为>系统设置> Android SDK ,您可以在顶部findSDK位置设置,可以select更改,默认文件夹是〜/ Android / Sdk

Android Studio SDK路径

设置SDKpath

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


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


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

Project_Folder /安卓/应用

在你的local.properties中,你想把variablessdk.dir设置为你的SDK文件夹的path:

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

虽然这是解决问题最简单的方法,但这不是最好的,特别是如果您使用多个项目。 对于每个项目,您将不得不为每个项目创build该文件,并且如果文件夹更改了为每个项目的local.properties更改此文件的计划。

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


选项2:设置带有环境variables的文件夹


另一个选项是将SDK文件夹设置为React-Native默认查找的本地环境variables。 为此,我们将添加ANDROID_HOMEpath。 作为奖励,我们也可以在同一个地方添加我们的android工具。 我们需要把它添加到我们的主目录中的.bash_profile或.profile文件中,这些文件是最后加载的,所以我们可以确保没有别的东西覆盖我们所做的设置。 由于这些位于您的主目录中,因此无需使用升级的权限进行编辑。

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

在文件中添加以下代码,用上面find的那个代替SDK文件夹。 我将使用Android Studio文件夹作为示例:

 export ANDROID_HOME="~/Android/Sdk" export PATH=$PATH:~/Android/Sdk/tools:~/Android/Sdk/platform-tools 

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

 $ source ~/.profile $ echo $ANDROID_HOME /home/dbrown/Android/Sdk 

如果Sdk文件夹显示正确,恭喜! 重新运行您的react-native命令,然后继续观看应用程序构build过程。


如果你仍然有问题


如果由于某种原因,你会收到错误: >你的/ sdk /文件夹中的哈希string'android-23'无法find目标 ,你需要确保项目的版本和SDK的版本匹配(React你可以在Project_Folder / android / app / build.gradle中find默认的版本,然后searchbuildToolsVersion 。你当然可以从这个文件中更改版本,或者在Android Studio中转到File > Project Structure来更改Project SDK 。我不会build议改变这个版本,除非你完全知道你在做什么,否则安装项目所要查找的SDK版本。

你必须写正确的完整path。 不要使用'〜/ 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 

确保你已经安装了正确的模拟器和Android版本。 这解决了我的问题。

对于Linux用户

你的应用程序没有得到android-sdk的path,所以如果你使用的是linux(ubuntu),比你需要添加一个名为“local.properties”的文件并将其保存在你的应用程序文件夹内创build的android文件夹。

你需要在local.properties文件里面添加下面这行,这是你系统里面的android-sdk谎言的path,以便运行这个app。

sdk.dir=/opt/android-sdk/

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

要么

你可以打开terminal,input

sudo nano〜/ .bashrc

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

export ANDROID_HOME =“/ opt / android-sdk /”

重新启动你的电脑 ,然后再运行react-native run-android

注意: – 如果你在.bashrc文件中设置path,那么你甚至不需要创buildlocal.properties文件。

检查你的local.properties文件:

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

如果格式正确与否

复制你的系统的其他Android项目local.properties并粘贴到React-native项目的Android文件夹中,它将工作。

这对我有效。

我正在使用斯蒂芬·格瑞德的“Udemy原生本色”,其中一名学生在第五十讲中发布了这个消息。在命令行中逐字逐句粘贴(当然不包括“$”)。

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

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

将23.0.1replace为我的例子25.0.0中安装的Android Build Tool的版本

运行react-native run-android以在模拟器中查看您的应用程序。