在模拟器上运行AOSP

12

为了熟悉AOSP,我打算按照官方文档的指引,在模拟器上构建一个映像并运行它。

在设置好Ubuntu 16.04虚拟机后,我使用以下命令:

repo init -u https://android.googlesource.com/platform/manifest
repo sync
source build/envsetup.sh
lunch full-eng
make -j8
emulator

编译正常,模拟器启动但屏幕仍为空白。控制台中没有特定的错误追踪。
我尝试了没有专有二进制文件和使用Nexus 5二进制文件,但结果没有改变。
我还尝试了使用lunch aosp_arm-eng,但结果相同。
我错过了什么吗?
我可以成功地进入模拟器的shell。在dmesg输出中,我注意到以下错误迹象:
[   23.952504] init: Failed to bind socket 'pdx/system/vr/display/client': No such file or directory
[   23.954517] init: Failed to bind socket 'pdx/system/vr/display/manager': No such file or directory
[   23.956460] init: Failed to bind socket 'pdx/system/vr/display/vsync': No such file or directory

service list命令的输出结果如下:

generic:/ # service list
Found 10 services:
0   media.resource_manager: []
1   media.player: []
2   media.camera: []
3   media.sound_trigger_hw: []
4   media.radio: []
5   media.aaudio: []
6   media.audio_policy: []
7   netd: []
8   media.audio_flinger: []
9   batteryproperties: [android.os.IBatteryPropertiesRegistrar]

你尝试过构建特定的设备吗?请参考此链接上列出的可用设备名称。 - David Lev
@DuduLev 我也尝试为“angler”(Nexus 6P)构建,但在运行模拟器时遇到了相同的问题。 - sdabet
@Onik 使用 sdk-eng 会得到相同的结果。 - sdabet
嗯...你能进入模拟器的shell吗?如果可以的话,查看一下logcatdmesg的输出。service list命令会给出多少个服务? - Onik
1
@Onik 我假设编译成功是因为在make命令结束时出现了绿色的build completed successfully消息。 - sdabet
显示剩余7条评论
2个回答

0
我知道这个可能已经过时了,但是我觉得还是发一下让其他人看到。
我之前也遇到了类似的问题,解决方法是运行以下命令:
cd aospDir
source build/envsetup.sh
lunch sdk_phone_x86_64
m -j16       # builds using 16 cores

然后一旦完成:
adb start-service
emulator

对我来说,adb无法启动是一个问题。

-2
构建适用于aosp_x86_64或arm的版本。然后应该能运行!其他图像不再支持在模拟器上运行,它们是为各自的设备设计的。arm和x86 / x86_64应该在模拟器上工作,因为它们具有通用性。
编辑:刚刚看到您尝试运行aosp_arm_eng,如果是这样,请您方便的话,可以在运行模拟器之后发布结果吗? $ emulator -verbose

2
请在您的回答中添加更多细节,这应该只是对问题的评论。 - lifeisfoo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接