android - NDK 编译应用的 Android 兼容性
问题描述
这个问题可能听起来超级愚蠢,但我没有找到任何官方答案,这个错误https://github.com/android-ndk/ndk/issues/272让我更加困惑。
如果我用 ndk 编译一个带有 27 版平台的 C 程序,它可以在旧版本的 android 上工作吗?
解决方案
不。NDK API 级别相当于 minSdkVersion:https ://android.googlesource.com/platform/ndk/+/master/docs/user/common_problems.md#target-api-set-higher-than-device-api
C 库的静态版本可以在可执行文件中使用,但如果在应用程序中使用它会导致问题,因为 libc 已经由 zygote 加载,并且您将拥有全局数据结构的冲突副本。
请注意,即使使用普通的可执行文件,静态链接 libc 也会导致网络问题,因为 libc 将其某些方面委托给 netd,并且只有当 libc 的版本与 netd 的版本匹配时,该通信协议才能保证工作。
推荐阅读
- android - 在使用毕加索在通知中显示位图图像时,我收到“无法创建带有消息'未实现'的图像解码器”错误
- office365 - 如何通过office365 api为用户添加多个角色?
- javascript - 在 React 中保存编辑好的表单后自动刷新页面
- java - 无法在junit 5中使用@ContextConfiguration创建用于测试的bean
- pdf - 使用从服务 api 接收的 s3 签名 url 在浏览器中显示 PDF
- react-native - 如何在 React Native 中测量视图的开始和结束 'x' 和 'y' 坐标
- oracle - 查询更改列中的日期格式
- sql-server - 由非管理员用户执行 sp_setnetname
- javascript - 如何修复这个 JavaScript 手风琴错误?
- elixir - 是否有任何依赖项可以支持 ecto 3.0 的 MongoDB 连接?