如何解决“由于某些许可未被接受,无法安装以下 Android SDK 包”的问题?

问题描述

这是一个非常不必要的问题,但在这里

我想编译并运行几个月前的 React Native 应用程序。它之前只需一个命令行脚本调用就可以完美运行。

目前卡在这里

A problem occurred configuring project ':react-native-reanimated'.
> Failed to install the following Android SDK packages as some licenses have not been accepted.
     patcher;v4 SDK Patch Applier v4
     emulator Android Emulator
     tools Android SDK Tools
     platforms;android-28 Android SDK Platform 28
     build-tools;29.0.2 Android SDK Build-Tools 29.0.2
  To build this project,accept the SDK license agreements and install the missing components using the Android Studio SDK Manager.

我环顾四周,发现我必须使用 sdkmanager 接受它。

我尝试使用 `SDK 管理器接受许可证,但它给了我“Xmlscheme 错误”。

我环顾四周,发现这是由于我的 JDK 太新(版本 15)造成的。所以我把它降级到 JDK 8。

现在 sdkmanager 可以启动,并立即显示

All SDK package licenses accepted.======] 100% Computing updates...     

现在我再次尝试运行构建脚本,但之前的许可接受错误仍然存​​在。

有些回答说可能是因为我没有权限更改它,建议使用SDK文件夹上的chmod 0777更改它。我已经这样做了。重新运行接受许可证。重新运行构建脚本。还是一样。

我该如何解决这个问题? SDK 管理器甚至不显示任何不被接受的许可证。已全部接受。

更新:我运行 ./sdkmanager --licenses --verbose,看起来每次它尝试接受许可证并报告已接受,但如果我再次运行,它会接受相同的许可证。就像...接受结果没有保存。

更新:从这个 comment 开始,我尝试了 sdkmanager --licenses --sdk_root=~/Library/Android/sdk,看起来它正在接受许可(询问是否要接受许可)。但是在接受许可后,仍然导致与上述相同的问题。

解决方法

如果您现在还没有解决这个问题,以下是解决方案:

  1. 转到 Android Studio 中的设置
  2. 转到 Android SDK
  3. 选择 SDK 工具选项卡
  4. 标记并安装以下软件包:“Android SDK 命令行工具”、“Google Play 许可库”和可选(因为我不确定是否有必要)“Google Play 服务”

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...