我的是
ndk{
abiFilters ‘armeabi-v7a’,‘x86’
}
见鬼了,构建时勾选的明明是armeabi-v7a:arm64-v8a,那我是不是把这里改为
ndk{
abiFilters 'armeabi-v7a','arm64-v8a'
}
就OK了?
是的,是这样改。
有几点注意下:
1.删除build目录下x86相关的文件夹(因为你之前选过,需要手动删除,或者换个目录重新构建)
这个表明你自己改过build.gradle文件,这种情况下你在cocos里面build的时候有没有勾选哪个都不产生影响的,最终都是build.gradle文件里这个设置生效。
如果你的包体超过150M,参考我另一篇文档
只要是文件夹带x86(还有x86-64文件夹也该删吧)了的就一律删掉是吧?
那也就是说
1 ndk{
abiFilters ‘armeabi-v7a’,‘arm64-v8a’
}
这个需要修改
2 删除x86和x86-64的文件夹
这两步就OK了吧?
不用删,abiFilters ‘armeabi-v7a’,‘arm64-v8a’ 就行了。这个就是filter,打包的时候会自动把其他平台的库去掉的。
嗯,打完包,再检查下包里面的配置
您的意思是我改过build.gradle里面的 ndk{
abiFilters ‘armeabi-v7a’,‘arm64-v8a’
}?
这个真没改过,但build.gradle里面的其他东西肯定改过。
你肯定改过,cocos打包出来的默认build.gradle里面是没有直接写 ndk{
abiFilters ‘xxxxx’
}
的,它是通过读取PROP_APP_ABI这个字段生成出来的,而这个字段就来源于你在编辑期内的勾选 
奇怪了,我真没下意识改过。。。。那没准是在网上乱拷bulid.gradle内容时中招的
另外请教一下,我上一个游戏,armeabi-v7a,arm64-v8a,x86, x86-64都勾选了,而且我确认了打包后里面也包括这四项。但上架谷歌的时候没事。
这次的游戏,打包后里面只有armeabi-v7a和x86,就报上面那个此版本不符合google play关于提供64位版本的错。
那是不是可以理解为,如果x86, x86-64这两个都有就上架没事,只有x86这一个就不行?
如果没有事,你都勾上吧。毕竟有人在模拟器上玩。包的体积够的情况下
嗯嗯,我考虑下都勾选上。我上面的理解没错吧?如果x86, x86-64这两个都有就上架没事,只有x86这一个就不行?
主要是有没有arm64-v8a吧?
不太清楚,反正网上说有x86就不行,但我上一个游戏armeabi-v7a,arm64-v8a,x86, x86-64都有就没事。现在考虑还是像上一个游戏一样,把这四项都弄上得了。。。。
勾选armeabi-v7a,arm64-v8a这两个的情况下,现在没有手动删除x86目录,打包后lib文件夹里面只有armeabi-v7a,arm64-v8a。
确认到这一步就可以了吧?还有别的需要确认吗?
嗯,可以了
嗯嗯,非常感谢!
有一个小技巧,安卓包打完以后,需要打开安装包的lib目录看一下,确认各个架构目录下的so文件数量一致,如果不一致的话必会在对应机型上闪退。
嗯嗯,学习了,非常感谢!
