如何使用 Expo CLI 为 android 构建 64 位本机代码
Posted
技术标签:
【中文标题】如何使用 Expo CLI 为 android 构建 64 位本机代码【英文标题】:How to Build 64-bit native code for android using Expo CLI 【发布时间】:2019-09-21 17:24:02 【问题描述】:我正在使用 react-native 和 EXPO CLI 来构建 android apk 文件。但我无法上传到 Play 商店。我收到一条警告消息
警告此版本不符合 Google Play 64 位要求
以下 APK 或 App Bundle 可用于 64 位设备,但它们只有 32 位本机代码:1.
从 2019 年 8 月 1 日起,所有版本都必须符合 Google Play 64 位要求。
我正在使用的版本
"dependencies":
"expo": "^32.0.0",
"prop-types": "^15.7.2",
"react": "16.5.0",
"react-native": "https://github.com/expo/react-native/archive/sdk-32.0.0.tar.gz",
"react-navigation": "^3.4.1"
,
"devDependencies":
"babel-preset-expo": "^5.0.0"
,
帮助我按照 Google Play 64 位要求构建 app bundle。
【问题讨论】:
你成功了吗?我尝试升级到 expo 33,但我仍然在 google play 中收到警告(“此版本不符合 Google Play 64 位要求”、“以下 APK 或 App Bundles 可用于 64 位设备,但它们只有 32 位本机代码...") 【参考方案1】:对于高于版本0.59
的非世博项目,请查看您的android/app/build.gradle
。如果您在defaultConfig
中设置了ndk
,请确保它包含所有架构abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
。
defaultConfig
...
ndk
abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
【讨论】:
【参考方案2】:还没到。这就是答案。 https://blog.expo.io/expo-sdk-v33-0-0-is-now-available-52d1c99dfe4c
我们建议所有使用 Android 应用程序的 Expo 开发人员现在升级到 SDK 33,以提前完成创建 64 位 APK(SDK 34 中提供)所需的大部分工作,并且必须提交到8 月的 Google Play。
我假设在 32 和 33 之间发生巨大变化之后,他们想将其拆分为 2 个单独的版本。所以,假设我们将在 7 月下旬获得 v34 sdk ;)
【讨论】:
@yossi 我想替你说出来,因为你刚刚问过了【参考方案3】:世博会的任何后续行动?已经是五月底了
【讨论】:
根据expo论坛,8月前将支持64位:forums.expo.io/t/does-expo-package-64-bit-version-of-android/… 你成功了吗?我尝试升级到 expo 33,但我仍然在 google play 中收到警告(“此版本不符合 Google Play 64 位要求”、“以下 APK 或 App Bundles 可用于 64 位设备,但它们只有 32 位本机代码...")【参考方案4】:在我的应用程序部署期间我能找到的最多的recent information 说 expo 不会生成 64 位二进制文件:
我的理解是 react-native 0.59 会支持 64-bit 版本(目前处于“候选发布”阶段)。 32 世博会在 我相信 react-native 0.57。
到目前为止,我们不提供 64 位二进制文件,但这在我们的路线图中 我可以保证我们会在截止日期之前添加这样的功能
但是,这不应阻止您部署应用,因为该要求要到 8 月才会生效。
【讨论】:
我用“expo弹出”将它们分开,版本是“expo 30”,这意味着我们不能将它们上传到谷歌商店? 如果您退出了,您将不再使用 expo,我的回答也不再适用。一旦你被弹出,构建过程会发生变化,但如果你反应原生版本大于 0.59,你可以生成 64 位二进制文件 您是说可以创建 64 位二进制文件,而不管您使用“expo 弹出”标识了什么? 是否有任何迹象表明 Expo 团队知道 8 月份对 Android 版本的要求,并打算到那时支持 64 位 Android 版本? @pachun:他们说 Expo 将在 8 月之前支持 64 位:forums.expo.io/t/does-expo-package-64-bit-version-of-android/…【参考方案5】:升级到 Expo SDK 33 后,我最新的 Android 版本(7 月 15 日)确认为 64 位:
Native platforms: arm64-v8a, armeabi-v7a, x86, x86_64
【讨论】:
以上是关于如何使用 Expo CLI 为 android 构建 64 位本机代码的主要内容,如果未能解决你的问题,请参考以下文章