前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ERROR: Conflicting configuration : 'arm64-v8a' in ndk abiFilters cannot be present when split...

ERROR: Conflicting configuration : 'arm64-v8a' in ndk abiFilters cannot be present when split...

作者头像
静默加载
发布2020-05-29 11:16:43
2.6K0
发布2020-05-29 11:16:43
举报

Android 官网通知,从 2019 年 8 月 1 日开始,您在 Google Play 上发布的应用必须支持 64 位架构。64 位 CPU 能够为您的用户提供更快、更丰富的体验。添加 64 位的应用版本不仅可以提升性能、为未来创新创造条件,还能针对仅支持 64 位架构的设备做好准备。

按照Android 官网提示进行配置本来很简单的一件事,但是确话费了我好长时间。

在这里记录一下这个错误,防止自己以后再犯 ^ _ ^

优化ApK大小之ABI Filters 和 APK split

想要打出的 apk 包含多个架构的 so库 需要下面的配置:

代码语言:javascript
复制
android {
    ... // 其它配置
    defaultConfig {
       ...  // 默认配置
       ndk {
           //选择要添加的对应cpu类型的.so库。
            abiFilters 'armeabi', 'armeabi-v7a'
            // 还可以添加
            // 'arm64-v8a', 64 bit ARM architecture,it can use v7 version
            //              unless you are too much concerned about performance
            // mips,mips64, There are no devices with MIPS
            //  x86_64, No android devices and anyway it can use X86 version
            //  armeabi, very old architecture. Unsupported after Android 4.4
            // 'x86', Intel based devices
        }
    }
    ... // 其它配置
}

想要构架多个不同架构的 apk 包,可以使用 ABI 拆分,需要下面的配置:

代码语言:javascript
复制
android {
    ... // 其它配置
    splits {
        abi {
            reset()//重置 ABI 列表为只包含一个空字符串(与 include 一起使用可以表示要使用哪一个 ABI,而不是要 exclude 哪些 ABI)
            enable true // 设为true,才能启用ABI拆分机制在打包时根据架构生成不同的apk文件
            universalApk false  // If true, 构建支持所有平台abi类型,构建一个包,包含多个架构的so(只要代码中有的都会打进去)
            include "armeabi-v7a", "armeabi" // 设置所有要支持的abi类型,构建多个包,每个包只包含一个架构的so
            exclude "x86"   // 设置所有不要支持的abi类型
        }
    }
}

这种配置是没有办法让打出的 apk 只包含自己想要的多种架构的~!

ERROR

如果两个一起配置那么报下面的错误:

代码语言:javascript
复制
ERROR: Conflicting configuration : 'arm64-v8a' in ndk abiFilters cannot be present when splits abi filters are set : armeabi

因为 ABI 拆分当中的 include 是和 ndk abiFilters 互斥的操作!!

总结

  • 如果两种方式分开配置都可以运行;
  • 两种方式一起配置在不报错的情况下(ABI拆分注调include),ABI 拆分不生效;
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档