来自Unity3d的Multi apk for differents architecture

时间:2015-09-07 19:42:47

标签: android unity3d x86 apk

我想在google商店发布2个apk(使用统一制作),使用多个apk功能。 我在互联网上看了一遍,我试过这个:

  • 在ProjectFolder / jni /创建了一个Application.mk 只有APP_ABI := x86APP_ABI := armeabi armeabi-v7a取决于我想要使用的库。

  • 使用Unity' device filtrer'创建了2个带有2个版本代码的apk设置为x86或Ar Mv 7,具体取决于我想要构建的apk。

  • 在google develloper console上发布了两个apk。

Apk的大小不同,因此使用了不同的库。 (使用两个lib,apk重量16 mo以上,只有手臂,像~8mo更多,只有x86喜欢~8.5mo)。

问题在于,原生平台'通过谷歌控制台检测到的始终是' armeabi-v7a,x86' (两个架构),不管是apk。 所以我在谷歌控制台上收到一条错误消息,说两个apk都具有相同的设备兼容性。

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

更新:

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

1 个答案:

答案 0 :(得分:0)

如果谷歌指出这一点,那就意味着即使你正在尝试为ARM构建,Unity也会覆盖/覆盖x86的文件。这是你应该做的几件事

  1. 打开Unity的Player Settings,转到Android标签,选择Other Settings,然后在配置 - >下设备过滤器选择您要构建的任何体系结构(默认为两者)

  2. 这个更不直观。仅仅因为你做了上面的第1步,并不总是意味着只构建了1个架构。如果是插件,它的/lib文件夹包含适用于这两种体系结构的任何文件,然后构建这两种体系结构。因此,您需要手动梳理每个plugi文件夹,并确保没有此类文件。