如何在我的应用程序中包含 64 位和 32 位本机代码

Posted

技术标签:

【中文标题】如何在我的应用程序中包含 64 位和 32 位本机代码【英文标题】:How to Include 64-bit and 32-bit native code in my app 【发布时间】:2020-01-02 20:43:21 【问题描述】:

我无法将我的应用上传到 Playstore 出现此错误 我还构建了“android App Bundle”来上传应用程序,但再次出现此错误。

此版本不符合 Google Play 64 位要求 以下 APK 或 App Bundle 可用于 64 位设备,但它们只有 32 位本机代码:111。

defaultConfig 
        applicationId "com.iqvis.com.buenosdias"
        minSdkVersion 17
        targetSdkVersion 26
        versionCode 111
        versionName "10.11"
        multiDexEnabled true
        ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'

【问题讨论】:

你试过这个答案***.com/a/54474417/3678308 吗? ndk.abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' 在我把这个ndk过滤器放到gradle然后我分析apk我只看到两个文件夹armeabi-仅 v7a 和 x86 我如何才能包含 arm64-v8a 和 x86_64 【参考方案1】:

2017 年,Google 宣布在 19 年 8 月 PlayStore 上的应用程序应提供 64 位的 32 位原生库的后续版本。从 Android 5( Lollipop ) 天开始就支持 64 位。

现在检查您的 apk

打开 Android Studio,然后打开任何项目。 从菜单中,选择构建 > 分析 APK,然后选择您要评估的 APK。

现在,如果您在分析器中查看 lib 文件夹,并在其中看到任何 .so,那么您有 32 位库,或者如果您有任何 armeabi-v7a 或 x86,那么您有 32 位库 如果您没有看到 .so 文件,那么您的应用不需要升级版本。

升级到 64 位架构

    // Your app's build.gradle
apply plugin: 'com.android.app'

android 
   compileSdkVersion 27
   defaultConfig 
       appId "com.google.example.64bit"
       minSdkVersion 15
       targetSdkVersion 28
       versionCode 1
       versionName "1.0"
       ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
   

更多信息请查看https://www.youtube.com/watch?v=E96vmWkUdgA

【讨论】:

以上是关于如何在我的应用程序中包含 64 位和 32 位本机代码的主要内容,如果未能解决你的问题,请参考以下文章

在 Java 应用程序中混合运行 32 位和 64 位本机库

如何制作同时支持 32 位和 64 位架构的 Android 应用程序?

关于 64 位和 32 位 JVM

如何在我的新CSPROJ类库中包含带有本机dll的NuGet包?

为 Windows 编写跨平台(32 位和 64 位兼容)程序(如 .NET 中的 AnyCPU)

32位和64位可以一起工作吗?