android - 如何确保 Android APK 支持 32 位和 64 位?
问题描述
如果我的 APK 包含 lib 中的 'armeabi-v7a' 'arm64-v8a' 'x86' 'x86_64' 文件夹,但在该文件夹中,它意味着它同时支持 64 位和 32 位。
因为已经构建的 APk 包含 lib 中的 'armeabi-v7a' 'arm64-v8a' 'x86' 'x86_64' 文件夹。但是 'armeabi-v7a' 和 'x86' 文件夹包含一些 *.so 文件,这些文件在 'arm64-v8a' 和 'x86_64' 中不存在
现在有必要添加 - ndk { abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86' ,'x86_64' }
解决方案
要将 32 位转换为 64 位,只需在您的 gradle 文件中添加以下代码,如下所示。
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' //add this line***
}
如果您想查看 apk 是 32 位还是 64 位,请按照以下步骤操作:
打开 Android Studio,然后打开任何项目。从菜单中,选择构建 > 分析 APK。选择您要评估的 APK。
查看 lib 文件夹,您可以在其中找到任何“.so”文件。如果您在应用程序中根本找不到任何“.so”文件,那么您的应用程序已经准备就绪,无需进一步操作。如果您看到 armeabi-v7a 或 x86,那么您有 32 位库。
检查 arm64-v8a 或 x86_64 文件夹中是否有类似的“.so”文件。如果您没有任何 arm64-v8a 或 x86_64 库,则需要更新构建过程以开始在 APK 中构建和打包这些工件。
如果您已经看到这两个库都被打包,您可以直接跳到在 64 位设备上测试您的应用程序。
推荐阅读
- ios - 未知类型名称'thread_policy_flavor_t';你的意思是“task_policy_flavor_t”吗?
- apache-kafka - 如何使用 Reactor 执行无限 Kafka 轮询?
- linux - CallerFilePathAttribute 未在 azure 的 linux 容器应用服务上返回具有有效目录分隔符的文件路径
- r - 如何按顺序找到向量的最小值
- oracle - PLSQL 语句不检索数据库中存储的不同字符集(垃圾)数字类型
- mysql - 如何在终端或 GUI 中访问 mysql 社区服务器?
- amazon-web-services - 仅允许删除用户创建的存储桶的 S3 策略
- html - 所有列表项(连接)的边框底部,它将如何工作?
- android - fusedLocationProviderClient.requestLocationUpdates(mLocationRequest, mLocationCallback, Looper.myLooper()) 使 android 应用程序崩溃
- python - 当提供 boot_volume 而不是图像时,python openstack 客户端创建服务器失败