android - 我想在 android 中将音频服务器(/frameworks/av/media/audioserver)构建为 64 位,但无法启动
问题描述
我想将audioserver(/frameworks/av/media/audioserver) 构建为64位,并参考Android.mk (/frameworks/av/media/audioserver/Android.mk) 中的说明,在其中添加AUDIOSERVER_MULTILIB :=64 device.mk,但是无法启动,查看日志,发现如下错误。01-20 09:44:31.637 2581 2581 F 链接器:无法链接可执行文件“/system/bin/audioserver”:“/system/lib64/libaudioflinger.so”中不支持 ELF TLS DT 条目
console:/system/bin # file audioserver audioserver: ELF shared object, 64-bit LSB arm64, dynamic (/system/bin/linker64), for Android 28, BuildID=01599, stripped
控制台:/system/lib64 # 文件 libaudioflinger.so libaudioflinger.so:ELF 共享对象,64 位 LSB arm64,适用于 Android 28,BuildID=fd41f,已剥离
/frameworks/av/media/audioserver/Android.mk
# If AUDIOSERVER_MULTILIB in device.mk is non-empty then it is used to control
# the LOCAL_MULTILIB for all audioserver exclusive libraries.
# This is relevant for 64 bit architectures where either or both
# 32 and 64 bit libraries may be built.
#
# AUDIOSERVER_MULTILIB may be set as follows:
# 32 to build 32 bit audioserver libraries and 32 bit audioserver.
# 64 to build 64 bit audioserver libraries and 64 bit audioserver.
# both to build both 32 bit and 64 bit libraries,
# and use primary target architecture (32 or 64) for audioserver.
# first to build libraries and audioserver for the primary target architecture only.
# <empty> to build both 32 and 64 bit libraries and 32 bit audioserver.
音频服务器应该可以正常工作
解决方案
这个问题在谷歌邮件列表“android-porting”上得到了回答。我只是引用答案。 https://groups.google.com/forum/#!topic/android-porting/lK7dDeJT0k4
“截至目前,Android 的 AOSP 版本尚未正式支持 64 位音频服务器。我们正在考虑在未来版本中为音频服务器添加 64 位选项,但我无法告诉您何时会发生这种情况。即使那样,它也可能仅限于能够支持它的平台(例如,由于对各种库的依赖等)。” (格伦·卡斯滕,2019 年 1 月 25 日)
推荐阅读
- selenium-webdriver - 我们如何处理截断的标签或文本
- excel - Excel VBA将数据从一张表中的表格移动到另一张表中的表格
- javascript - 在表格上打印时图像消失
- swift - swift 编译器/链接器是否会自动删除未使用的方法/类/扩展等?
- mysql - 使用相同打开的连接插入超过 50 个查询
- java - 从 xml 文件中获取长值
- mysql - 用于添加当前位于不同表中的列的 SQL 查询
- python-3.x - 包 cvxpy 新语法错误汇总条目
- node.js - 如何在 GraphQL 中执行突变?
- javascript - 如何使用反应在打字稿中安全地定义一个数组数组