【问题标题】:Ionic/Cordova & Android 64-bit requirementIonic/Cordova 和 Android 64 位要求
【发布时间】:2019-06-26 05:36:01
【问题描述】:

Google has announced 自 2019 年 8 月 1 日起,所有新应用和应用更新都必须提供 64 位版本以及 32 位版本。我有一个 Ionic 3 (Cordova) 应用程序,但我不确定这会产生什么影响。具体来说,Ionic/Cordova 应用需要做什么才能满足这一要求?

从 2019 年 8 月 1 日开始:

所有包含本机代码的新应用和应用更新都必须 发布时除了提供 32 位版本外,还提供 64 位版本 到 Google Play。

【问题讨论】:

  • 我可能是错的,但我认为 Android 只是在游戏中迟到了 - iOS/Apple 自 2016 年以来就要求这样做。所以我想对于不支持这一点的插件,它应该是一个行动号召,但我想添加这样的支持并不难。

标签: android cordova ionic-framework


【解决方案1】:

它并不真正依赖于 Cordova/Ionic,而是依赖于你使用的插件。

如果您使用的任何插件都有 .so 库,那么它们应该提供该库的 64 位版本。 如果您的插件都没有使用 .so 库,那么您就可以开始了。

如果您不确定您的插件是否使用 .so 库,Google 建议您检查您的 apk(解压缩或使用 APK 分析器)。如果您有一个 lib 文件夹,并且它有 armeabi-v7ax86 文件夹,请确保还有 arm64-v8ax86_64 文件夹,每个文件夹中都有相同的库。

欲了解更多信息:https://developer.android.com/distribute/best-practices/develop/64-bit

【讨论】:

  • 感谢发帖。很抱歉对此一无所知,但我怎么知道插件是否包含 .so 库?通过插件/平台区域可以看到吗?此外,如果有(或没有)一个 .so 库,作为 cordova/ionic 构建过程的一部分,开发人员是否需要做任何事情来创建 32 位和 64 位构建?
  • 我不知道最好的方法,但是你可以查看plugin.xml。 .so 文件用于 c、c++ 和 NDK 库,因此在插件上并不常见。您可以在示例github.com/dpa99c/cordova-plugin-hello-c/blob/master/… 中查看此内容,它包含适用于不同架构的 .so 文件。我认为你不需要做任何特别的事情,只要它包含 64 位 .so。
  • 我最近了解到我们使用的第 3 方插件,它通过 build-extras.gradle 文件提供 64 位库,该文件通过 gradle/maven 拉入库。因此,查看带有 .so 文件的所有插件的 plugin.xml 文件可能是难题的一部分,但它似乎不是完整的画面。
  • 如果您在 Android Studio 中打开项目,您是否在根目录或 app/src/main/ 中看到了 jniLibs 文件夹?也许有更好的地方可以研究。
  • 看来你掌握了正确答案的精髓。查看developer.android.com/distribute/best-practices/develop/64-bit 作为参考,它解释了为这些.so 库分析您的APK 的两种方法。一种方法是使用 Android Studio,另一种方法是解压缩 APK。最后,此链接给出了 32 位与 64 位期望值的图表。 jcesarmobile - 您可以参考此链接和其中一些“操作方法”详细信息吗?然后我会将此标记为答案。
【解决方案2】:
  1. 转到此链接https://www.npmjs.com/package/cordova-plugin-build-architecture 并安装“npm i cordova-plugin-build-architecture
  2. 在“config.xml”中添加以下行

<preference name="xwalk64bit" value="true" />


<preference name="buildArchitecture" value="arm64" /> <!-- [If you want to fetch the 64 bit arm build] -->

附上截图:

  1. 最后一步是您可以在 cd 平台/android 文件夹中运行 gradlew assembleRelease 命令并查看包含这些文件夹“x86_64”的构建输出 apk >" & "arm64"

【讨论】:

  • @tomriddle_1234,你能告诉我你得到的错误是什么吗?
  • Crosswalk 太老了,避免使用它。您应该更新到最新的 cordova-android,并使用 bundle 选项构建,但是您仍然可以手动将一些 lib 文件复制到 jniLib 文件夹以通过 Google 64 位检查。
猜你喜欢
  • 1970-01-01
  • 2019-10-14
  • 1970-01-01
  • 1970-01-01
  • 2019-08-08
  • 1970-01-01
  • 2020-01-13
  • 2016-09-21
  • 1970-01-01
相关资源
最近更新 更多