You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android构建因未接受NDK许可证失败,执行许可证接受命令无法显示该许可证陷入循环

Android构建因未接受NDK许可证失败,执行许可证接受命令无法显示该许可证陷入循环

这种许可证循环的问题确实让人头大——明明跑了sdkmanager --licenses却碰不到NDK的许可协议,Gradle还一直卡着不让过。下面是几个针对性的解决方案,帮你跳出这个死循环:

1. 手动安装指定NDK版本,触发许可证接受

最直接的方式是主动安装报错里提到的NDK版本(26.1.10909125),这个过程中Android会强制要求你接受许可证:

  • 用Android Studio操作
    打开Android Studio → 进入Settings(Windows是File > Settings) → Appearance & Behavior > System Settings > Android SDK → 切换到SDK Tools标签,勾选Show Package Details。找到NDK (Side by side)展开,勾选26.1.10909125,点击Apply。这时候安装流程里会弹出许可证确认窗口,直接接受即可。
  • 用命令行安装
    如果Android Studio没弹出窗口,试试直接用sdkmanager安装该NDK包,命令会自动触发许可证验证:
    C:\Users\me\AppData\Local\Android\Sdk\cmdline-tools\latest\bin\sdkmanager.bat "ndk;26.1.10909125"
    
    执行这个命令时,如果之前没接受该NDK的许可证,会直接提示你输入y来确认接受。

2. 手动添加NDK许可证文件

如果安装NDK时还是没触发许可证提示,可以手动在SDK目录里创建对应的许可证文件:

  1. 打开你的Android SDK许可证目录:C:\Users\me\AppData\Local\Android\Sdk\licenses
  2. 在这个文件夹里新建一个名为android-sdk-ndk的文件(无后缀名)
  3. 往文件里粘贴以下内容(这是Google NDK的标准许可证哈希密钥,对应所有NDK 21+版本):
    8933bad161af4178b1185d1a37fbf41ea5269c55
    d975f751698a77b662f1254ddbeed3901e976f5a
    
  4. 保存文件后,重新尝试构建项目。

3. 明确指定NDK路径,避免Gradle自动下载

有时候Gradle会尝试自动下载NDK但因为许可证问题失败,你可以在项目里硬指定已安装的NDK路径:

  1. 打开项目的android/local.properties文件(如果没有就新建一个)
  2. 添加以下内容(替换成你实际的NDK路径,确保你已经手动安装了该版本的NDK):
    ndk.dir=C\:\\Users\\me\\AppData\\Local\\Android\\Sdk\\ndk\\26.1.10909125
    
  3. 同步Gradle(Android Studio里点击Sync Project with Gradle Files按钮),然后重新构建。

4. 彻底清理缓存,重置环境

如果以上方法都没效果,试试彻底清理相关缓存:

  • 清理Android Studio缓存:File > Invalidate Caches...,勾选所有选项后重启AS
  • 清理Gradle全局缓存:删除C:\Users\me\.gradle\caches目录下的所有内容
  • 清理项目构建缓存:在项目根目录执行gradlew clean(Windows命令)

完成这些操作后,再重新尝试构建或运行许可证命令,应该能解决循环问题。

内容来源于stack exchange

火山引擎 最新活动