【问题标题】:How to build 64 and also 32 bit APK with React Native如何使用 React Native 构建 64 位和 32 位 APK
【发布时间】:2019-09-09 23:04:33
【问题描述】:

我已将我的应用升级到 react-native 0.59.x,以便为即将从谷歌截获的 64 位兼容性:

使用本机代码的应用必须提供 64 位版本(除了 32 位版本)

-- https://android-developers.googleblog.com/2019/01/get-your-apps-ready-for-64-bit.html

请注意,我们必须提供 both 版本。我希望通过组装两个单独的 APK 来做到这一点。这是如何实现的?

目前,我运行./gradlew assembleRelease 并在我的目录app/build/outputs/apk/release 中获取一个APK

更新:如果答案是 React Native 旨在输出包含所有 32 位和 64 位版本的单个 APK,那么这肯定也回答了我的问题。我的期望肯定会偏离。

【问题讨论】:

    标签: android react-native 64-bit


    【解决方案1】:

    来自官方document

    如果您的应用仅使用以 Java 编程语言编写的代码,或者 Kotlin,包括任何库或 SDK,您的应用程序已经准备好 64 位设备。如果您的应用程序使用任何本机代码,或者您不确定是否 确实如此,您需要评估您的应用并采取行动。

    对于 ARM 架构,32 位库位于 armeabi-v7a 中。 64 位等效版本是 arm64-v8a。

    对于 x86 架构,请查找用于 32 位的 x86 和用于 64 位的 x86_64。

    通用 APK 中涵盖了这些内容。这就是你正在生产的,所以不用担心!

    仍然有疑问,然后将您的 apk 放在 Android Studio 的 apk 分析器上并检查它是否有库。

    【讨论】:

    • 他正在使用 ReactNative,它有各种 C 库,需要在正确的 ABI 中(包括运行代码的 Javascript 解释器)。如果他使用正确的工具链,我怀疑 RN 会为他正确设置它,但这并不能回答他的问题——这不仅仅是 Java/Kotlin 的问题,而是本机 C 代码的问题。
    • 但是 react native 涵盖了 64 位版本。我通过运行它检查了它
    • @MasukHelalAnik 如果我理解正确,您是说 react-native 会生成一个包含每个库的 32 位和 64 位版本的 APK?这就是你所说的通用 APK?
    • @MasukHelalAnik 我不知道 RN 是否提供 64 位和 32 位库。我的猜测是,如果 RN 现在不提供两者,它很快就会提供。但是你的答案是关于用纯 Java 和 Kotlin 编写的应用程序,而不是关于如何确保所有正确的反应原生库都在那里。充其量它是一个“甚至是坏掉的时钟”类型的答案 - 完全错误的推理的正确答案。
    • @GabeSechan:“如果他使用正确的工具链,我怀疑 RN 会为他正确设置”......对不起,我不明白。需要详细说明吗? :D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 2020-05-04
    • 1970-01-01
    相关资源
    最近更新 更多