Ionic 3 中的 Android SDK 平台 26 许可证错误

Posted

技术标签:

【中文标题】Ionic 3 中的 Android SDK 平台 26 许可证错误【英文标题】:Android SDK Platform 26 license error in Ionic 3 【发布时间】:2018-06-10 03:38:39 【问题描述】:

我正在尝试使用 ionic cordova run android --device --stacktrace 在我的 Android 设备上运行我的 Ionic 3 项目,但是,我有以下输出:

...

检查包 Android SDK Platform 26 的许可证 C:\Android\android-sdk\licenses 警告:Android 软件包的许可证 不接受 SDK 平台 26。

FAILURE:构建失败并出现异常。

出了什么问题:配置根项目“android”时出现问题。

您尚未接受以下 SDK 组件的许可协议:[Android SDK Platform 26]。在构建项目之前, 您需要接受许可协议并完成 使用 Android Studio SDK 安装缺少的组件 经理。或者,了解如何转让许可证 从一个工作站到另一个工作站的协议,转到 http://d.android.com/r/studio-ui/export-licenses.html

阅读其他问题,人们建议使用 Android Studio SDK 管理器并安装最新版本,因为那时我会被问及许可证并且必须接受它们,所以我安装了 Android 8.0 (Oreo) 和 Android API 27是最后可用的更新,但是,我从来没有询问任何许可证并且错误仍然存​​在。我的设备通过 USB 电缆连接到 PC (Windows 10),并且编程模式与 USB 调试一起启用。我该怎么做才能解决这个问题?

我的 SDK 管理器:

更新

我已经在C:\Android\sdk\tools\binC:\Users\User\AppData\Local\Android\sdk\tools\bin 文件夹中运行了命令sdkmanager --licenses,并且接受了所有丢失的许可证,但错误仍然存​​在。

我在package.json:"cordova-android": "~6.3.0"config.xml:<engine name="android" spec="~6.3.0" /> 中的cordova-android 版本(已经尝试使用6.3.06.2.0 没有成功)

跟随错误:

检查包 Android SDK Platform 26 的许可证 C:\Android\android-sdk\licenses 警告:Android 软件包的许可证 不接受 SDK 平台 26。

但我在C:\Android\android-sdk 中没有许可证文件夹,只有在C:\Android\sdk 中。我如何为 Ionic 检查许可证真正所在的文件夹?

ionic info:

cli packages: (C:\Users\User\AppData\Roaming\npm\node_modules)

    @ionic/cli-utils  : 1.19.0
    ionic (Ionic CLI) : 3.19.0

global packages:

    cordova (Cordova CLI) : 7.1.0

local packages:

    @ionic/app-scripts : 3.1.0
    Cordova Platforms  : none
    Ionic Framework    : ionic-angular 3.9.2

System:

    Node : v6.11.2
    npm  : 3.10.10
    OS   : Windows 10

Environment Variables:

    ANDROID_HOME : C:\Android\android-sdk

Misc:

    backend : pro

【问题讨论】:

更新你的node js, ionic,npm,android/ios 版本.. @igor cordova-android的版本是什么 按照in this question 的说明为我解决了这个问题。 @Igor 在命令提示符下转到 $ANDROID_HOME/tools/bin 并尝试执行命令 -“./sdkmanager --licenses”。然后接受那里列出的所有许可证。 @Webruster "cordova-android": "~6.3.0" 【参考方案1】:

在 SDK 文件夹中,您必须在命令提示符下运行。

...\sdk\tools\bin

输入此命令

sdkmanager "platforms;android-26"

【讨论】:

也用react-native run android为我解决了同样的问题。需要提供进程抱怨的平台号和名称,在我的情况下为"platforms;android-28" @HughBarnard 感谢您分享信息。 #保持分享【参考方案2】:

解决了!阅读页面上的信息http://tools.android.com/tech-docs/new-build-system/license:

...

如果您在一台工作站上接受了许可协议,但 希望在不同的项目上构建您的项目,您可以导出您的 通过从 Android Sdk 复制接受的许可证文件夹来获得许可证 主文件夹

...

所以我只去了C:\Android\sdk 并将许可证文件夹复制到C:\Android\android-sdk 文件夹,这是Ionic 搜索许可证的位置。

感谢所有试图提供帮助的人。

【讨论】:

但我猜你没有提到在一个工作站上接受许可证并在另一个有问题的工作站上构建。 但是我都是在同一个工作站上构建的,但是还是发生了错误 但奇怪的是 licenses 文件夹是如何在 android 主文件夹之外创建的【参考方案3】:

检查您的 cordova-android 版本。 尝试使用cordova-android版本6.2.3运行。

如果上述解决方案不起作用,请遵循此过程。

    下载android studio SDK管理器

    下载版本 26 的 SDK。

    https://developer.android.com/studio/intro/update.html

更新

根据您的更新,您将在 package.json 中添加版本,如下所示

"cordova-android": "~6.3.0" 所以将其更改为以下格式,如下所示 "cordova-android": "6.3.0"Reference to the Issue

注意如果上述格式不适用于6.3.0,请尝试与6.2.0相同,如下"cordova-android": "6.2.0"

【讨论】:

使用版本 6.2.3 运行对我不起作用(错误仍在继续)。但我已经有了版本 26 的 SDK(问题中的打印屏幕) 尝试使用6.3.06.2.0 但再次失败,坚持说我不接受Android SDK Platform 26 许可证。在问题更新中添加了更多信息。【参考方案4】:

在我的案例中,使用 Visual Studio + Cordova,通过将“licenses”文件夹从您的 %ANDROID_HOME% 文件夹复制到“C:\ProgramData\Microsoft\AndroidSDK\25”解决了这个案例,VS 从那里获取了许可证。

【讨论】:

【参考方案5】:

转到android sdk 文件夹,从那里复制licenses 文件夹,然后将文件夹粘贴到以下路径:

C:\Users\intel\AppData\Local\Android\Sdk

【讨论】:

【参考方案6】:

在我安装了需要许可证的版本后 - 它开始工作了!您可以在 Android Studio > SDK Manager 中执行此操作

【讨论】:

【参考方案7】:

@Paresh Gami 的回答帮助解决了我的问题。只是 Mac OSX 用户的一个旁注..

完整路径是 /Users/useraccount/Library/Android/sdk/tools/bin/

其中 useraccount 是您当前的系统用户。

【讨论】:

【参考方案8】:

操作系统:Windows 7(64 位)

您可以使用 blow 命令接受 SDK lic 协议:

转到“C:\Usersuser_name\AppData\Local\Android\sdk\tools\bin”

执行命令:sdkmanager "platforms;android-xx"

node : xx 是版本

【讨论】:

【参考方案9】:

我确实尝试过上面提到的技巧,在 Mac OS 上对我有用的是下面

$ANDROID_HOME/tools/bin/sdkmanager "build-tools;26.0.1" "platforms;android-26"

【讨论】:

【参考方案10】:

在最新的 SDK 中,您可以在此位置找到 sdkmanager 文件

/Users/pareshgami/Library/Android/sdk/cmdline-tools/latest/bin/

之后我们需要运行相同的命令

sdkmanager "platforms;android-26"

【讨论】:

以上是关于Ionic 3 中的 Android SDK 平台 26 许可证错误的主要内容,如果未能解决你的问题,请参考以下文章

不接受离子许可证 sdk 平台

如何在 Ionic 2/3 应用程序中使用 branch.io 创建 Android 应用程序链接?

ionic3 打包安卓平台环境搭建报错解决方案总结

ionic打包问题

如何使用Ionic 3为Android API 21构建apk?它继续为API 23构建,即使我在config.xml中将目标sdk更改为21

ionic cordova build android - 失败