Android Studio构建NDK失败,执行ndk-build.cmd出错求助
我来帮你排查这个NDK构建失败的问题,这类错误通常和配置、版本兼容或者代码问题有关,你可以一步步试试下面的方案:
检查NDK版本与APP_PLATFORM的兼容性
你指定的APP_PLATFORM=android-21,需要确认当前使用的ndk-bundle版本是否支持这个API级别。部分高版本NDK已经不再支持android-21及以下的旧API,比如NDK 25+就移除了对android-21的支持。如果你的NDK版本过高,可以尝试下载适配android-21的NDK版本(比如NDK 21.x系列),并在local.properties里指定正确的ndk路径:ndk.dir=E:\\sdk\\ndk\\21.4.7075529验证jni目录下的配置文件
检查Android.mk和Application.mk的内容是否正确:- 确保
Android.mk里的LOCAL_SRC_FILES指向的C/C++文件路径无误,没有拼写错误或者文件缺失; - 确认
Application.mk里的APP_ABI=x86_64是否符合项目需求,如果你不需要单独构建x86_64架构,可以改为APP_ABI=all或者项目支持的架构列表; - 检查
APP_PLATFORM的设置是否和build.gradle里的minSdkVersion一致,避免版本不匹配。
- 确保
确认NDK路径的有效性
执行命令的路径是E:\sdk\ndk-bundle\ndk-build.cmd,你需要确认这个路径下确实存在ndk-build.cmd文件,且NDK包没有损坏。如果ndk-bundle是通过Android Studio自动下载的,可能出现下载不完整的情况,可以尝试删除ndk-bundle文件夹后重新下载。清理缓存并重新构建
Android Studio的构建缓存可能会导致异常,你可以:- 点击菜单栏的
Build > Clean Project; - 然后执行
Build > Rebuild Project; - 也可以手动删除项目根目录下的
build文件夹,再重新构建。
- 点击菜单栏的
检查C/C++代码的语法错误
ndk-build失败很多时候是因为jni目录下的代码存在语法错误、头文件引用缺失或者链接错误。你可以尝试直接在命令行执行ndk-build命令,获取更完整的错误信息:
打开命令提示符,切换到jni目录所在的路径(比如D:\TASK\workspace_3\android-event-injector-master\AndroidEventInjector\src\main\jni),然后执行:E:\sdk\ndk-bundle\ndk-build.cmd APP_ABI=x86_64 NDK_DEBUG=1 APP_PLATFORM=android-21这样能看到具体的错误提示,比如哪个文件的哪一行出了问题,方便针对性修复。
配置Gradle的NDK参数
如果你的项目使用Android Gradle插件构建,可以在模块的build.gradle里明确指定NDK相关配置,避免命令行参数冲突:android { defaultConfig { ndk { abiFilters "x86_64" minSdkVersion 21 } externalNativeBuild { ndkBuild { path "src/main/jni/Android.mk" } } } externalNativeBuild { ndkBuild { path "src/main/jni/Android.mk" } } }
内容的提问来源于stack exchange,提问作者kongxiangjia

