我正在为Nexus播放器构建AOSP,在成功编译之后,我尝试运行模拟器,收到的消息是:
模拟器:错误:无法找到Linux版本'内核映像中的字符串 file:/ home / mita / Work / Nexus / out / target / product / fugu / kernel
我无法找到任何相关信息,有人请帮忙。
完整输出是:
模拟器:找到ANDROID_PRODUCT_OUT:/ home / mita / Work / Nexus / out / target / product / fugu emulator:Found build 目标体系结构:x86模拟器:寻找模拟器-x86进行模拟 ' 86' CPU模拟器:探测程序:./ emulator64-x86模拟器:探测 程序:./ emulator-x86模拟器:探测路径:emulator64-x86 模拟器:返回结果: /家庭/三田/工作/的Nexus / prebuilts / Android的模拟器/ Linux的x86_64的/ emulator64-86 模拟器:找到特定于目标的模拟器二进制文件: /家庭/三田/工作/的Nexus / prebuilts / Android的模拟器/ Linux的x86_64的/ emulator64-86 模拟器:GPU仿真被禁用模拟器:正在运行 :/首页/三田/工作/的Nexus / prebuilts / Android的模拟器/ Linux的x86_64的/ emulator64-86 模拟器:qemu后端:argv [00] = " /家庭/三田/工作/的Nexus / prebuilts / Android的模拟器/ Linux的x86_64的/ emulator64-86" 模拟器:qemu后端:argv [01] =" -verbose"模拟器:连接 后端参数: /家庭/三田/工作/的Nexus / prebuilts / Android的模拟器/ Linux的x86_64的/ emulator64-86 -verbose模拟器:找到Android build root:/ home / mita / Work / Nexus模拟器:找到Android build out: / home / mita / Work / Nexus / out / target / product / fugu emulator:读取属性 档案在 /home/mita/Work/Nexus/out/target/product/fugu/system/build.prop 模拟器:找不到引导属性文件: /home/mita/Work/Nexus/out/target/product/fugu/boot.prop
模拟器:找到目标API sdkVersion:25
模拟器:虚拟设备没有配置文件 - 没有问题模拟器: 使用核心hw配置路径: /home/mita/Work/Nexus/out/target/product/fugu/hardware-qemu.ini 模拟器:找到特定于皮肤的hardware.ini: /home/mita/Work/Nexus/development/tools/emulator/skins/HVGA/hardware.ini 模拟器:autoconfig:-skin HVGA模拟器:autoconfig:-skindir / home / mita /工作/ Nexus /开发/工具/模拟器/皮肤模拟器:找到 特定于皮肤的hardware.ini: /home/mita/Work/Nexus/development/tools/emulator/skins/HVGA/hardware.ini 模拟器:从/home/mita/.android/default.keyset加载的键集 模拟器:尝试加载皮肤文件 ' /家庭/三田/工作/的Nexus /开发/工具/仿真器/毛皮/ HVGA /布局' 模拟器:皮肤网络速度:'完整'模拟器:皮肤网络延迟: '无'模拟器:autoconfig:-kernel / home / mita / Work / Nexus / out / target / product / fugu / kernel emulator:Target arch =' x86'模拟器:自动配置:-qemu -cpu qemu32模拟器:错误: 无法找到Linux版本'内核映像文件中的字符串: /家庭/米塔/工作/的Nexus /输出/目标/产品/河豚/内核
答案 0 :(得分:84)
我遇到此错误,原因是我的模拟器运行旧版本。我去了SDK Manager并更新了Android模拟器
Tools > SDK Manager > SDK Tools > Android Emulator > Mark it checked to force update > Accept
此后,模拟器正确运行
答案 1 :(得分:4)
答案 2 :(得分:2)
我也遇到此错误,原因是我的模拟器运行的是旧版本。我去了SDK Manager并更新了Android模拟器
我遵循了@voghdev的步骤
Tools > SDK Manager > SDK Tools > Android Emulator > Mark it checked to force update > Accept
还要确保有足够的空间供仿真器运行。
它大约需要8gb的磁盘空间。
此后,模拟器正确运行
答案 3 :(得分:0)
回答我自己的问题:
如果您编译fugu - Nexus Player版本,则无法在模拟器上运行构建。
答案 4 :(得分:0)
检查您的Android SDK设置-> SDK工具 启用HAXM安装程序(如果您有Intel) like here
它帮助了我,祝你好运!
答案 5 :(得分:0)
只需转到“工具”>“SDK 管理器”>“SDK 工具” 并更新您选择的选项下可能可用的内容。
它可以做很多事情:
答案 6 :(得分:0)
我在构建 AOSP 然后从同一终端启动模拟器时遇到了类似的问题
OP 的后期帖子,但我希望这有助于其他人为早期版本的 AOSP 构建(OP 为 API 25 发布构建)。
问题:
我确定您知道,要配置 AOSP 构建,您需要运行:
$ . build/envsetup.sh
$ lunch
(然后选择您的构建目标)在 envsetup.sh
中,如果您查看 function lunch()
底部附近,会发现对 set_stuff_for_environment
的调用。在 function set_stuff_for_environment()
中,有一个对 setpaths
的调用。
function setpaths()
,顾名思义,添加了一些指向 $PATH
变量的路径,以便您的 AOSP 构建正确运行。添加到 $PATH
的路径之一是与 AOSP 一起打包的 emulator
命令版本。
由于 AOSP 模拟器的路径将首先在您的 $PATH
中找到,因此在运行 $ emulator
时,系统将使用 emulator
的 AOSP 版本而不是您的 Android Sdk 版本emulator
。
简而言之,当您从命令行运行 $ emulator
之后 运行 $ lunch
,您将运行 emulator
的 AOSP 版本,它是与您正在构建的任何版本的 AOSP 相关联。 (就我而言,它是 AOSP 的旧版本)
解决方案:
除了正确指出您需要更新 Android Sdk 中的模拟器版本的其他答案之外,您还需要确保从 Android Sdk 路径运行 emulator
命令,而不是从AOSP 模拟器路径。
要快速检查这一点,您可以使用 $ which emulator
。这将显示运行 $ emulator
“正确”的路径应该是这样的:
/home/user-name/Android/Sdk/emulator/emulator
。运行 $ lunch
后,路径将如下所示:
/home/user-name/aosp-home-dir/prebuilts/android-emulator/<target>/emulator
TL;DR
如果您从构建 AOSP 的同一终端运行 $ emulator
,请尝试从新终端运行 $ emulator
。此外,您应该使用 emulator
确认 $ which emulator
命令的路径。
$ which emulator
应该指向 < Android Sdk dir >/emulator/emulator
的模拟器位置,不是模拟器的 AOSP 版本。
注意:< Android Sdk dir >
通常安装到 ~/Android/Sdk
其他注意事项:
我不是 100% 确定此答案适用于所有 AOSP 版本。对于这个答案,我是为 8.1 构建的(而 OP 是为 API 25 或 Android 7.1 构建的)。无论如何,我正在查看最新 envsetup.sh
的源代码,它具有我在上面列出的相同设置例程。
答案 7 :(得分:0)
这里遵循一个简单的技巧。
通过执行此旧设置将默认删除。 模拟器的新设置将可用。