Unity 3d 针对不同架构的多个 apk
Multi apk from Unity3d for differents architectures
我想在 google 商店(使用 unity 制作)上发布 2 个 apk,使用多 apk 功能。
我在互联网上查看并尝试了这个:
在 ProjectFolder/jni/ 创建了一个 Application.mk
只有 APP_ABI := x86
或 APP_ABI := armeabi armeabi-v7a
取决于我想使用的库。
创建了 2 个带有 2 个版本代码的 apk,Unity 'device filtrer' 设置为 x86 或 Ar Mv 7,具体取决于我想要构建的 apk。
在 google 开发者控制台上发布了两个 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 文件。这是您应该做的几件事
打开 Unity 的 Player Settings
,转到 Android
选项卡,select Other Settings
并在 配置 -> 设备过滤器下 select 无论你想构建什么架构(默认都是)
这个有点不直观。仅仅因为您执行了上面的第 1 步,并不总是意味着只构建了 1 个架构。如果一个插件,它的 /lib
文件夹包含适用于这两种架构的任何文件,那么这两种架构都会被构建。所以你需要手动梳理每个plugi文件夹,确保没有这样的文件。
我想在 google 商店(使用 unity 制作)上发布 2 个 apk,使用多 apk 功能。 我在互联网上查看并尝试了这个:
在 ProjectFolder/jni/ 创建了一个 Application.mk 只有
APP_ABI := x86
或APP_ABI := armeabi armeabi-v7a
取决于我想使用的库。创建了 2 个带有 2 个版本代码的 apk,Unity 'device filtrer' 设置为 x86 或 Ar Mv 7,具体取决于我想要构建的 apk。
在 google 开发者控制台上发布了两个 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 文件。这是您应该做的几件事
打开 Unity 的
Player Settings
,转到Android
选项卡,selectOther Settings
并在 配置 -> 设备过滤器下 select 无论你想构建什么架构(默认都是)这个有点不直观。仅仅因为您执行了上面的第 1 步,并不总是意味着只构建了 1 个架构。如果一个插件,它的
/lib
文件夹包含适用于这两种架构的任何文件,那么这两种架构都会被构建。所以你需要手动梳理每个plugi文件夹,确保没有这样的文件。