如何让Flutter项目通过Android Studio生成含x86 ABI的App Bundle
如何让Flutter生成的App Bundle包含x86/x86_64 ABI
要让Android Studio生成的App Bundle包含x86和x86_64架构,你只需要在应用级的build.gradle文件中添加NDK架构过滤配置即可,具体步骤如下:
步骤1:修改应用级build.gradle
打开你项目中的android/app/build.gradle文件(就是你提供的那份配置),在android -> defaultConfig块中添加ndk配置节点,明确指定需要包含的ABI:
android { compileSdkVersion 29 sourceSets { main.java.srcDirs += 'src/main/kotlin' } lintOptions { disable 'InvalidPackage' } defaultConfig { applicationId "com.spayro.spayroshop" minSdkVersion 21 targetSdkVersion 29 versionCode flutterVersionCode.toInteger() versionName flutterVersionName // 添加这部分配置,指定需要支持的ABI ndk { abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86', 'x86_64' } } // ... 其他配置保持不变 }
步骤2:重新生成Signed App Bundle
保存修改后的build.gradle文件,然后回到Android Studio(或者通过VS Code的终端执行Gradle命令),重新执行Build -> Generate Signed App Bundle/APK流程。这次生成的App Bundle就会包含你指定的所有ABI架构了。
为什么默认不包含x86架构?
Flutter和Android的默认配置中,会优先考虑主流的ARM架构设备(因为x86/x86_64的Android设备市场占比极低),这样可以减小App Bundle的体积。但如果你有特定场景需要支持x86设备,手动添加abiFilters就能覆盖默认行为。
另外需要注意:即使你包含了x86架构,Google Play在分发时依然只会给对应的x86设备推送包含该架构的APK切片,不会影响其他设备的下载体积。
内容的提问来源于stack exchange,提问作者GunJack
相关产品推荐
相关产品推荐

