如何选择Android应用程序捆绑包中包含的架构?

问题描述

在我们的应用中,build.gradle中具有以下设置:

    splits {
        abi {
            enable true
            reset()
            include 'armeabi-v7a','arm64-v8a'
            universalApk false
        }
    }

并且:

    defaultConfig {
        externalNativeBuild {
            ndkBuild {
                abiFilters 'armeabi-v7a','arm64-v8a'
            }
        }
    }

但是,当我构建应用程序捆绑包时,它包含用于Crashlytics的x86和x86_64库,如果我使用 bundletool 从捆绑包中生成所有APK,我会得到x86和x86_64 APK。我们不想支持这些架构。我如何才能使该捆绑包仅包含armv7和armv8?

解决方法

splits被捆绑忽略,您应该添加:

bundle {
    abi {
        enableSplit = true
    }
}