zoukankan      html  css  js  c++  java
  • Android NDK: Application targets deprecated ABI(s): armeabi Open File

    Error:(81) Android NDK: Application targets deprecated ABI(s): armeabi
    Error:(82) Android NDK: Support for these ABIs will be removed in a future NDK release. 
    当项目中使用到ndk时可能会爆出这个错误,原因是Android NDK从r16 beta1开始,不再支持 ARM5 (armeabi)。默认情况下,Android NDK不会构建ARM5版本。如果在Application.mk配置了构建ARM5版本,会收到类似以上的警告。

    Android系统支持的CPU架构

    • ARMv5:armeabi,32位
    • ARMv7:armeabi-v7a,32位
    • x86:x86,32位
    • MIPS:mips,32位
    • ARMv8:arm64-v8a,64位
    • MIPS64:mips64,64位
    • x86_64:x86_64,64位

    解决方法如下:

    如果不需要支持ARM5,可以在APP_ABI列表里吧armeabi去掉。

    Application.mk配置APP_ABI

    Application.mk的参数APP_ABI用来配置Android系统支持的CPU架构。

    支持所有架构

    APP_ABI := all
    

    支持所有32位架构

    APP_ABI := all32
    

    支持指定的架构

    APP_ABI := armeabi,armeabi-v7a,x86,mips,arm64-v8a,mips64,x86_64
    

    多个架构使用逗号隔开。

    如果一定要用到armeabi,则在app/build.gradle文件下添加设置:

    android {
        defaultConfig {
    
            // ...
    
            ndk {
                abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a' // 'x86', 'x86_64' may be added
            }
       }
    
       // ...
    
        task ndkClean(type: Delete) {
            // remove unused archs from build cache
            delete fileTree('.externalNativeBuild') {
                exclude defaultConfig.ndk.abiFilters.collect { '**/' + it }
            }
        }
        tasks.findByPath(':clean').dependsOn ndkClean
    }
     重要的是红色字体,将你有的架构包(除armeabi之外的)加入,没有就创建,放入armeabi中相同的so包。
    (或者在Application.mk文件中设置APP_ABI:= armeabi armeabi-v7a)

    参考:https://majing.io/posts/10000004121193
  • 相关阅读:
    2013年4月20日
    关于"退耦"
    关于PCB原理图中的FBFB是磁珠的符号电子元器件电路图
    搜索技巧总结
    收集 QQ旋风离线下载帐号
    转载一篇日志
    硬件原理图和实物对比理解_EM310模块电路
    硬件原理图和实物对比理解_zigbee模块
    硬件原理图和实物对比理解_LPC电源模块
    word无法读取此文件,文档可能已损坏_可能的补救方法
  • 原文地址:https://www.cnblogs.com/Sharley/p/8569569.html
Copyright © 2011-2022 走看看