【问题标题】:Google 64-bit requirement only works for some appsGoogle 64 位要求仅适用于某些应用
【发布时间】:2019-09-13 21:54:44
【问题描述】:

由于某种原因,我的应用程序不兼容 64 位。

我的第一个想法是它是我的 lib 文件。我检查了生成的 apk:我有 arm64-v8a、armeabi、armebi-v7a、mips、x86,它们都包含同名的 .so 文件。所以,我想这可能是因为 x86_64 丢失了?但是,我有另一个项目运行完全相同的库,根据播放仪表板兼容 64 位。我看不出两个 lib 或 gradle 设置之间有什么区别。

有没有人遇到过类似的情况?

更新:这是从分析 apk 得到的库:

就像我上面所说的,除了 x86_64 之外的所有文件都有 .so 文件。这可能是问题吗?您是否必须同时拥有 arm64-v8a 和 x86_64 的 .so 文件?为什么这对我的其他项目来说不是问题?

另一个更新: 好的,所以我认为它不起作用,因为我有 x86 而不是 x86_64。文档说“不需要支持每个 64 位架构,但是对于您支持的每个本机 32 位架构,您必须包含相应的 64 位架构。” ...这是否意味着我可以删除 x86 并且它应该可以正常工作?另外,删除 x86 是个好主意吗?它是否取消了对许多设备的支持?

【问题讨论】:

    标签: android android-layout


    【解决方案1】:

    official documentation中所述

    你应该添加 ndk.abiFilters :

    ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'  
    

    给你的 app build.gradle 文件

    【讨论】:

    • 嘿,罗伯!谢谢,但我没有使用 ndk,我只是使用 .so 库(对不起,如果我仍然不正确,因为我仍在学习这一切)。而且,我的另一个项目也使用这些 .so 库,并且在 gradle 文件中没有这个(并且似乎是兼容的)。
    • 您是否在 8 月 1 日之后发布了您的其他应用?谷歌开发控制台中有更新的隐私政策。可能是您的库使用了ndk,您可以从我分享的链接(developer.android.com/distribute/best-practices/develop/…)中查看,您可以分析apk,查看您的应用程序中缺少哪些ndk 文件夹。希望它会有所帮助。
    • 嗨,罗伯!再次感谢您的宝贵时间!我确实分析了APK。更新了问题以反映这一点。
    【解决方案2】:

    好的,我想通了。

    似乎我设法“欺骗”了谷歌,让他们认为我的应用程序是 64 位兼容的。仅仅因为 x86_64 FOLDER 可用,我猜谷歌控制台假设它包含所需的库。问题是缺少 x86_64 库。我的解决方案虽然不理想,但还是删除了 x86 库(反正设备支持的百分比很小),这样我就不需要 x86_64。

    所以,是的 :) 我所有的应用程序现在都兼容 64 位(尽管我失去了一些设备支持)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多