反应原生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
- 转到您的React本地项目 – > Android
- 创build一个文件
local.properties
- 打开文件
-
粘贴您的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
- 在Windows
用您的用户名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 。
设置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以在模拟器中查看您的应用程序。