Unity 3d 针对不同架构的多个 apk

Multi apk from Unity3d for differents architectures

我想在 google 商店(使用 unity 制作)上发布 2 个 apk,使用多 apk 功能。 我在互联网上查看并尝试了这个:

Apk大小不一样,所以使用了不同的库。 (对于这两个 lib,apk 重量增加 16 mo,只有 arm,大约 8mo,只有 x86,大约 8.5mo)。

问题是,无论 apk 是什么,google 控制台检测到的 'native platform' 始终是 'armeabi-v7a, x86'(两种架构)。 所以我在 google 控制台上收到一条错误消息,说这两个 apk 具有完全相同的设备兼容性。

(PS:如果我想要 2 个不同的 apk,那是因为每个库在最终的 apk 上占用 8mo,所以空项目占用 16mo。apk 有 google 大小限制.. .)


更新:

好的,问题出在一个插件 (everyplay)。它有 x86 和 arm 架构的库。解决方案是在构建 arm apk 之前删除 x86 插件库,并删除 arm 插件库以构建 x86 apk。 我还注意到在 Application.mk 中更改 APP_ABI 是没有必要的,统一参数 device filtrer 会覆盖它。

如果 Google 指出了这一点,这意味着即使您尝试为 ARM 构建,Unity 也会在某处覆盖/包含 x86 文件。这是您应该做的几件事

  1. 打开 Unity 的 Player Settings,转到 Android 选项卡,select Other Settings 并在 配置 -> 设备过滤器下 select 无论你想构建什么架构(默认都是)

  2. 这个有点不直观。仅仅因为您执行了上面的第 1 步,并不总是意味着只构建了 1 个架构。如果一个插件,它的 /lib 文件夹包含适用于这两种架构的任何文件,那么这两种架构都会被构建。所以你需要手动梳理每个plugi文件夹,确保没有这样的文件。