如何修复google只支持64bit的错误

时间:2024-05-23 07:58:14

一、遇到的问题

最近新的CocosCreator游戏项目添加了友盟SDK之后,再上传到google之后,google后台会提示这样的错误。

如何修复google只支持64bit的错误

This release is not compliant with the Google Play 64-bit requirement.

The following APKs or App Bundles are available to 64-bit devices, but they only have 32-bit native code:54.

Include 64-bit and 32-bit native code in your app. Use the Android App Bundle publishing format to automatically ensure that each device architecture receives only the native code it needs.This avoids increasing the overall size of your app. Learn More.

 

二、如何产生的问题

在项目的优化过程中,需要加入友盟SDK:

如何修复google只支持64bit的错误

implementation了这些库之后,我们用AndroidStudio自带的Analyze APK来分析加入友盟SDK前和加入之后的区别:

如何修复google只支持64bit的错误  如何修复google只支持64bit的错误

1.0.39是加入SDK前的包;

1.0.57是加入SDK后的包。

如何修复google只支持64bit的错误

可以看出,在加入了umeng(友盟)的SDK之后,增加了x86和armeabi的cpu架构。

tips:至于x86、armeabi、armeabi-v7a、arm64-v8a这些cpu架构的区别,大家自行查阅。

 

三、认识问题的本质

那么到了这里,我们大家有的了解到了问题产生的原因,有的可能还没了解到。

如果没了解到的,先回过头去看一下这句话:

This release is not compliant with the Google Play 64-bit requirement.

我们缺少了64位的so库。

为什么缺少了:因为友盟SDK增加了x86(也就是32位)的so库,但是没给我们增加x86-64的so库。

所以google的后台就给了这个报错。

 

四、解决问题

那么接下来要做的就是:

把x86的so库和armeabi的so库剔除掉就可以了。

如何剔除:

我们来看一下app中的build.gradle文件:

如何修复google只支持64bit的错误

在框柱的这句,意思很明显:abiFilters加入一些abi(言外之意,就是不作限制)。

这样的处理是引发这个google上传apk时报错的根本原因。

那么我们要如何修改:

abiFilters.addAll(PROP_APP_ABI.split(':').collet{it as String} 这句删掉。

再增加

ndk {
    abiFilters "armeabi-v7a","arm64-v8a"
}

如何修复google只支持64bit的错误