由于某种原因,我的应用程序不兼容64位。
我的第一个念头是将它作为lib文件。我检查了生成的apk:我有arm64-v8a,armeabi,armebi-v7a,mips,x86,它们都包含相同名称的.so文件。所以,我想这可能是因为缺少x86_64吗?但是,我有另一个项目正在运行完全相同的库,根据播放仪表板它是64位兼容的。我看不到两个lib或gradle设置之间的任何区别。
有人遇到过类似的事情吗?
就像我上面所说的,除x86_64外,所有文件都有.so文件。这可能是问题吗?您是否同时具有arm64-v8a和x86_64的.so文件?为什么对我的其他项目来说这不是问题?
另一个更新: 好的,所以我认为它不起作用,因为我有x86而不是x86_64。文档说:“并不需要支持所有64位体系结构,但是对于您支持的每个本机32位体系结构,您都必须包括相应的64位体系结构。” ...这是否意味着我可以删除x86并且应该可以正常工作?另外,删除x86是个好主意吗?它会取消对许多设备的支持吗?
答案 0 :(得分:0)
您应该添加ndk.abiFilters:
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
到您的应用程序build.gradle文件
答案 1 :(得分:0)
好,所以我知道了。
似乎我设法欺骗了Google,使我认为我的应用程序是64位兼容的。仅仅因为x86_64文件夹可用,我猜Google控制台假定它包含必需的库。问题是缺少x86_64库。我的解决方案虽然不理想,但是却删除了x86库(无论如何支持少量设备支持),因此我不需要x86_64。
所以,是的:)我的所有应用现在都符合64位标准(尽管我已经失去了对某些设备的支持)。