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

时间:2015-09-17 15:30:14

标签: 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.

31 个答案:

答案 0 :(得分:671)

  • 转到您的react-native项目的android/目录
  • 使用以下行创建名为local.properties的文件:

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

    USERNAME是您的OSX用户名

答案 1 :(得分:304)

  1. 转到您的React-native项目 - > Android
  2. 创建文件local.properties
  3. 打开文件
  4. 粘贴您的Android SDK路径,如下所示

      Windows中的
    • sdk.dir = C:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
    • in macOS sdk.dir = /Users/USERNAME/Library/Android/sdk
    • in linux sdk.dir = /home/USERNAME/Android/Sdk
  5. USERNAME替换为您的用户名

    现在,在终端中运行react-native run-android

答案 2 :(得分:101)

您可以尝试添加ANDROID_PATH

export ANDROID_HOME=/Users/<username>/Library/Android/sdk/
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

答案 3 :(得分:46)

打开~/.bash_profile并添加:

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

enter image description here

答案 4 :(得分:35)

不要 更新 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

注意:我使用brew caskthese instructions之后安装 Android SDK

答案 5 :(得分:26)

elixir(mix => { mix.less('app.scss'); });

答案 6 :(得分:21)

如果您正在使用android/local.properties文件中的反斜杠和冒号进行Windows转义(添加反斜杠)。如果它不存在则创建它

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

答案 7 :(得分:10)

已更新React Native0.58的步骤以在MAC / Unix上开始使用

  • 在终端中打开bash_profile
  

nano〜/ .bash_profile

  

export ANDROID_HOME = $ HOME / Library / Android / sdk export

     

PATH = $ PATH:$ ANDROID_HOME /仿真器导出

     

PATH = $ PATH:$ ANDROID_HOME /工具导出

     

PATH = $ PATH:$ ANDROID_HOME / tools / bin导出

     

PATH = $ PATH:$ ANDROID_HOME / platform-tools

Control+S to save
Control+X to exit
Y to save changes
  • 更新终端中的更改
  

source ~/.bash_profile

  • 验证路径:
  

echo $PATH

  • 确认是否还可以:
  

adb devices

答案 8 :(得分:9)

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

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

查找SDK

来自程序包管理器

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

$ echo $JAVA_HOME
 /usr/lib/jvm/java-8-oracle

手动下载

如果您已通过 Java JRE / SDK下载进行安装,那么它将放置在您放置文件夹的任何位置,例如: / home / 用户名 /jdk-8u121_1.8.0 (或类似内容)。

脚本安装甚至可以将SDK添加到 / opt / java-8-oracle ,但在撰写本文时,Java安装说明会将文件夹放置在您手中。

Android Studio 2.2

最后,如果您使用的是Android Studio,则会将SDK放置在您将其设置为放置通过Studio的SDK Manager下载的SDK文件的位置。转到文件&gt;设置&gt;外观&amp;行为&gt;系统设置&gt; Android SDK ,您可以在顶部找到SDK位置设置,并提供更改选项,默认文件夹为〜/ Android / Sdk

Android Studio SDK Path

设置SDK路径

现在我们知道了SDK的位置,现在是时候让本地人知道反应了。

选项1:使用local.properties

进行设置

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

Project_Folder / Android设备/应用

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

如果您仍有问题

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

答案 9 :(得分:8)

适用于Windows用户

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

  1. 转到Enviromnent变量。 (您的PC&gt;属性)
  2. 创建系统变量
  3. 变量名称设置为 ANDROID_HOME
  4. 变量值设置为Android Sdk位置
  5. 按OK(3个对话框3次)
  6. 注意:

    您的Android Sdk通常位于

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

    确保关闭当前终端,因为您的终端拥有所有已存在的环境变量。

答案 10 :(得分:6)

在Ubuntu上,您必须从Android Studio strange 单独获取SDK,该路径将适用于Android Studio,但使用React Native,您需要创建一个文件名{{1} }。

例如旅馆local.properties并插入此行:
~/AwesomeProject/android

答案 11 :(得分:6)

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

答案 12 :(得分:5)

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

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

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

sdk.dir=/Users/<youcomputername>/Library/Android/sdk

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

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

确保正确添加以上行,否则会给您带来奇怪的错误。

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

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

source ~/.zshrc

在我的情况下,我可以正常工作。希望对您有帮助。

答案 13 :(得分:4)

从react项目中的 android 文件夹中删除local.properties,然后尝试。

我已经做到并成功了。

答案 14 :(得分:2)

查看sdk.dir=C\:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk 文件:

for mainbody in soup2.find_all('div',class_="thread_body"):
    main_body.append([mainbody.get_text().strip()])

如果格式正确

答案 15 :(得分:2)

我能找到的最佳解决方案如下:

  1. Download Android Studio and SDK of your choice(即使你认为你不需要它,相信我你需要它来释放apk文件并对android代码进行一些手动更改)。
  2. 文件&gt;新&gt;导入,指向您的反应原生android项目所在的位置。
  3. 如果它要求您下载任何特定的SDK,请下载相同的。它可以要求您更新gradle等...请继续更新,如果需要。
  4. 如果你有一个现有的Android SDK并且你知道该版本,那么你所要做的就是在你的android项目的build.gradle下匹配该版本。
  5. 这是gradle文件的样子:

    enter image description here

    如果您的机器设置一切顺利,并且您可以使用Android Studio编译项目,那么没有什么能阻止您通过react-native cli build android命令构建您的应用程序。

    通过这种方法,您不仅可以解决SDK的问题,还可以解决与Android开发的机器设置相关的许多问题。导入将自动查找SDK位置并创建local.properties。因此,您不必担心人工干预。

答案 16 :(得分:2)

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

sdk.dir = /home/[YOUR_USERNAME]/Android/Sdk

答案 17 :(得分:1)

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

答案 18 :(得分:1)

如果缺少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)?

答案 19 :(得分:1)

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

答案 20 :(得分:1)

如果创建和android studio项目,则可以看到在项目根目录中创建了local.properties文件。当您创建一个react native项目时,它不会为您创建该文件。因此,您必须手动创建它。并且必须添加skd目录。因此,请在android文件夹(位于root上)中创建一个新文件。然后像这样把你的SDK路径 sdk.dir=D\:\\Android\\SDK\\android_sdk_studio . 请记住:将单\删除为双。就像上面一样。

答案 21 :(得分:1)

在您的项目目录中,有一个名为“ android”的文件夹,并且其中有local.properties文件。 删除文件,构建应该成功运行

答案 22 :(得分:1)

适用于Linux用户

你的应用程序没有获得android-sdk的路径,所以如果你使用的是linux(ubuntu),那么你需要添加一个名为&#34; local.properties&#34;的文件。并将其保存在Android文件夹中,该文件夹是在app文件夹中创建的。

你需要在local.properties文件中添加以下行,这是你的android-sdk在系统内部的路径,以便运行应用程序。

sdk.dir=/opt/android-sdk/

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

你可以打开终端,输入

sudo nano~ / .bashrc

并将以下路径粘贴到文件的末尾

导出ANDROID_HOME =&#34; / opt / android-sdk /&#34;

重新启动计算机然后再次运行 react-native run-android

注意: - 如果您将设置路径放在.bashrc文件中,那么您甚至不需要创建local.properties文件。

答案 23 :(得分:1)

这对我有用。

我在Udemy上选择了Stephen Grider的React Native,其中一位学生在第50讲中发布了这篇文章。在命令行中逐字地粘贴(当然没有'$')。

dialog_car.setContentView(R.layout.dialog_cartype);

// at this point you have newly created view hierarchy and
// RadioGroup has no selected items

iv_carType=(ImageView)dialog_car.findViewById(R.id.iv_carType);
btn_confirmCar=(Button)dialog_car.findViewById(R.id.btn_confirmCar);
rg_carType=(RadioGroup)dialog_car.findViewById(R.id.rg_carType);

// still has no selected items, next call returns -1 as well
int selected=rg_carType.getCheckedRadioButtonId();

答案 24 :(得分:0)

通过 Android Studio 在项目中打开文件夹android。 Android studio创建必要的文件(local.properties)并下载SDK版本以运行Android所需。

答案 25 :(得分:0)

我在Windows上,无论是否在PATH env中都必须修改sdk路径。变量

sdk.dir=C:/Users/MY_USERNAME/AppData/Local/Android/Sdk

更改了此文件:

MyProject\android\local.properties

答案 26 :(得分:0)

问题是您没有正确配置环境变量。您必须使用(在Windows中)以下版本的SDK:C:\Users\YOUR_USERNAME\AppData\Local\Android\Sdk

有关更多信息:https://facebook.github.io/react-native/docs/getting-started

选择:在Android开发环境中的第3点中选择:React Native CLI Quickstart。配置ANDROID_HOME环境变量

如果立即执行操作,则必须将每个项目配置为使用您的环境变量,并且如果该项目与他们的设备不在同一个人中,则可能会引起问题。如果您按照我的建议进行操作,则无需配置任何项目。

答案 27 :(得分:0)

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

答案 28 :(得分:0)

有2种方法可以解决此问题:

  1. 简单地在android studio中运行您的react native Android项目,它将自动在react native Android项目中生成您的 local.properties 文件。

  2. a。转到React-native项目-> Android
    b。创建文件 local.properties
    C。打开文件
    d。像下面一样粘贴您的Android SDK路径

答案 29 :(得分:0)

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

将23.0.1替换为我的案例25.0.0中安装的Android Build Tool版本

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

答案 30 :(得分:-2)

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

sdk.dir=C\:\\Users\\paul\\AppData\\Local\\Android\\Sdk