NativeScript在Mac OS上找不到Android SDK

3

我安装了NativeScript,想要执行 tns platform add android 命令,但是它无法运行。ANDROID_HOME 环境变量已经设置正确,并且我已经安装了 SDK(API 22和最新版本)以及工具(25.0.2)。当我执行 tns doctor 命令时,提示:

WARNING: The Android SDK is not installed or is not configured properly.
Cannot find a compatible Android SDK for compilation. To be able to build for Android, install Android SDK 22 or later.

You need to have the Android SDK Build-tools installed on your system. You can install any version in the following range: '>=25.0.2'.

You need to have Android SDK 22 or later and the latest Android Support Repository installed on your system.

请查看 https://github.com/NativeScript/nativescript-cli/issues/2583#issuecomment-285477270 - 您可以重新下载 Android SDK 并下载早期版本的平台工具来暂时解决此问题。 - pkanev
2个回答

6
当前版本的 NativeScript 2.5.2 需要在 Android home 目录下安装某些工具,以便它能够检测到它们。最新版本的 Android SDK(2017年3月)实际上删除了主要的 android 支持文件,并将几个二进制文件移动到其他目录以进行清理。不幸的是,这会导致 NativeScript 无法检测到您已经安装了该 SDK。此版本的 SDK 发布时间晚于当前版本的 NativeScript。我认为最简单的解决方法是从命令行开始,使用 sdkmanager 然后选择下载旧版本的25.2.3 工具。如果要手动执行此操作,则需要删除 sdk/tools 文件夹中的所有内容,并下载:

https://dl.google.com/android/repository/tools_r25.2.3-windows.zip(Windows) https://dl.google.com/android/repository/tools_r25.2.3-macosx.zip(Macintosh) https://dl.google.com/android/repository/tools_r25.2.3-linux.zip(Linux)

然后将它们解压到 sdk/tools 目录中。


嗯,现在我遇到了错误: “命令 npm 以退出代码 243 失败” 但 Android 尝试安装。所以它离成功又近了一步。 - Damian Hetman
我删除了我的工具目录并下载/解压了Windows zip。运行tns doctor仍然会产生以下结果:无法找到兼容的Android SDK进行编译。要能够构建Android应用,请安装Android SDK 22或更高版本。 运行$%ANDROID_HOME%\tools\android来管理您的Android SDK版本。您需要在系统上安装Android SDK 22或更高版本以及最新的Android支持库。 运行$%ANDROID_HOME%\tools\android来管理Android支持库。 - Hilo

5

我使用Android Studio中的SDK管理器解决了这个问题,因为我之前已经安装过它,现在需要安装所有要求,即:

tools,platform-tools,android-25,build-tools-25.0.2,extra-android-m2repository,extra-google-m2repository,extra-android-support

安装完成后,将您的ANDROID_HOME环境变量更改为指向此SDK管理器。通常情况下,它将位于(/Users//Library/Android/sdk)。

export ANDROID_HOME=/Users/<user_name>/Library/Android/sdk

运行以下命令,确认NativeScript已检测到您的更改:

tns doctor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接