更新NDK到23.1.7779620后构建APK出现ld权限被拒错误如何解决
问题排查与解决步骤
- 验证权限级别:右键点击Android Studio快捷方式,选择「以管理员身份运行」后再执行构建,确认是否是Windows 7 UAC权限管控导致的写入权限不足。
- 排查目录权限与属性:找到报错中提到的输出路径
F:/Projects/Android/myProject/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/,右键查看文件夹属性,确认未勾选只读选项,且当前登录用户对该目录、NDK安装目录F:\\Programming\\AndroidNdk\\ndk-r23b都拥有完全控制权限。如果项目存放在受系统管控的目录,建议迁移到普通用户文件夹下再测试。 - 排查安全软件拦截:ld、clang++等NDK工具链生成.so文件的行为,极易被Windows Defender、第三方杀毒软件误判为恶意操作拦截写入。可临时关闭安全软件的实时防护后重新构建,若问题解决,将项目目录、NDK安装目录都加入安全软件白名单即可。
- 清理残留构建缓存:执行Android Studio菜单栏
Build > Clean Project,再手动删除项目根目录下的.gradle文件夹、app模块下的build文件夹,清除旧版本NDK构建产生的缓存文件后重新构建,避免缓存冲突导致的写入异常。 - 更换链接器适配Windows 7:NDK r23开始默认使用lld链接器,该版本链接器在Windows 7环境下存在已知兼容性问题。可在项目的
jni/Application.mk文件中添加如下配置,更换为bfd链接器再尝试构建:
APP_LDFLAGS += -fuse-ld=bfd
内容的提问来源于stack exchange,提问作者Mneckoee
相关产品推荐
相关产品推荐

