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包,命令会自动触发许可证验证:
执行这个命令时,如果之前没接受该NDK的许可证,会直接提示你输入C:\Users\me\AppData\Local\Android\Sdk\cmdline-tools\latest\bin\sdkmanager.bat "ndk;26.1.10909125"y来确认接受。
2. 手动添加NDK许可证文件
如果安装NDK时还是没触发许可证提示,可以手动在SDK目录里创建对应的许可证文件:
- 打开你的Android SDK许可证目录:
C:\Users\me\AppData\Local\Android\Sdk\licenses - 在这个文件夹里新建一个名为
android-sdk-ndk的文件(无后缀名) - 往文件里粘贴以下内容(这是Google NDK的标准许可证哈希密钥,对应所有NDK 21+版本):
8933bad161af4178b1185d1a37fbf41ea5269c55 d975f751698a77b662f1254ddbeed3901e976f5a - 保存文件后,重新尝试构建项目。
3. 明确指定NDK路径,避免Gradle自动下载
有时候Gradle会尝试自动下载NDK但因为许可证问题失败,你可以在项目里硬指定已安装的NDK路径:
- 打开项目的
android/local.properties文件(如果没有就新建一个) - 添加以下内容(替换成你实际的NDK路径,确保你已经手动安装了该版本的NDK):
ndk.dir=C\:\\Users\\me\\AppData\\Local\\Android\\Sdk\\ndk\\26.1.10909125 - 同步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




