编译MuPDF for Android时:jni:generateJsonModelRelease任务失败
解决MuPDF Android编译时armeabi架构定义缺失的问题
我之前也碰到过一模一样的问题,你这个错误的核心原因是armeabi ABI在较新的Android NDK版本中已经被废弃移除了。从错误日志里的这句关键信息就能看出来:
Android NDK: INTERNAL ERROR: The armeabi ABI should have exactly one architecture definitions. Found: ''
你设置APP_ABI := all的时候,NDK会尝试构建所有它支持的ABI,但如果你的NDK版本是r17或更高,它已经不认识armeabi了,就会抛出这个架构定义为空的错误。给你两个可行的解决方案:
方案一:修改ABI配置,指定当前NDK支持的架构
打开${PROJECT_HOME}/jni/Application.mk,把APP_ABI := all替换成以下具体的ABI列表(这些是当前主流NDK支持的架构):
APP_ABI := armeabi-v7a arm64-v8a x86 x86_64
替换完成后,重新执行你的编译命令:
make ANDROID_HOME=/Users/paddel10/Library/Android/sdk ./gradlew assembleDebug
这样编译时就只会构建仍受支持的架构,不会再触发armeabi相关的错误。
方案二:降级NDK到支持armeabi的版本
如果你确实需要兼容armeabi架构(比如要适配非常老旧的设备),那你得把NDK版本降级到r16b或更早(NDK r17及以后正式移除了armeabi的支持)。你可以通过Android SDK Manager下载旧版本的NDK,然后编译时指定该NDK的路径:
make ANDROID_HOME=/Users/paddel10/Library/Android/sdk ANDROID_NDK_HOME=/你的旧NDK路径 ./gradlew assembleDebug
这两个方案都能解决你碰到的generateJsonModelRelease任务失败的问题,根据你的需求选一个就行。
内容的提问来源于stack exchange,提问作者paddel10
相关产品推荐
相关产品推荐

