根据https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html:
2019年8月,Play将要求使用本机库的新应用和应用更新除32位版本外还提供64位版本。
我有一个React Native应用程序(包含本机代码)。我的问题是如何知道我使用的第三方库或者我自己的代码是否不支持64位?我该如何解决?
更新
我已将x86_64
添加到mu build.gradle
,现在我在apk中看到了x86_64
文件夹,但我认为有些文件丢失了。
以下是我的x86
文件夹的样子:
以下是我的x86_64
文件夹的样子:
答案 0 :(得分:15)
React Native将为Android版本0.59开始支持64位
https://github.com/facebook/react-native/issues/2814#issuecomment-457688789
https://github.com/facebook/react-native/commit/f3e5cce4745c0ad9a5c697be772757a03e15edc5
答案 1 :(得分:2)
应用的所有本机代码都存储在apk根目录的libs/
目录中。例如,对于编译的ARM或x86代码,您可以在libs / architecture_type / lib_name.so中找到它。
APK基本上只是一个zip文件,因此您可以使用任何zip工具提取它。
list of architectures (ABIs) is here。如果您没有arm64-v8a的目录或拥有x86但没有x86_64,那么您将缺少64位本机代码。
答案 2 :(得分:2)
https://github.com/facebook/react-native/issues/2814
Facebook似乎正在努力支持64位版本。您可以检查构建文件夹中的中间件,以查看您支持的abis。
https://developer.android.com/ndk/guides/abis.html
Android采用build abi的最低公分母。如果Facebook很快没有解决这个问题,这将成为一个问题。
答案 3 :(得分:1)
react-native新版本自动支持64位。 只需将react-native版本更新为0.59.0或更高版本并重建您的应用程序,只需运行:
react-native upgrade 0.59.1
答案 4 :(得分:1)
如果您使用的React Native版本低于0.59,那么您必须升级您的应用程序以响应本机0.59或更高版本。从0.59版本开始,React本机仅支持64位。
还要确保您的应用在MyProject / Android / App / Build.gradle文件中包含以下几行。
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk true // If true, also generate a universal APK
include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
}
}
有关更多信息,请参见: Update your React Native Apps to be 64 Bit
答案 5 :(得分:0)
React native已于3月12日发布了新版本的react native。 在这个新版本中,React本机支持64位系统。 您可以在下面的链接中阅读有关此内容的更多详细信息。 http://facebook.github.io/react-native/blog/2019/03/12/releasing-react-native-059