模拟器无法找到Linux版本'内核映像文件中的字符串

时间:2017-03-29 09:16:46

标签: linux android-emulator ubuntu-14.04 android-source

我正在为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 /输出/目标/产品/河豚/内核

8 个答案:

答案 0 :(得分:84)

我遇到此错误,原因是我的模拟器运行旧版本。我去了SDK Manager并更新了Android模拟器

Tools > SDK Manager > SDK Tools > Android Emulator > Mark it checked to force update > Accept

此后,模拟器正确运行

答案 1 :(得分:4)

见上面@voghDev 的回答,

<块引用>

工具 > SDK 管理器 > SDK 工具 > Android 模拟器 > 标记为选中 强制更新 > 接受

答案 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 工具” 并更新您选择的选项下可能可用的内容。

它可以做很多事情:

  • Android SDK 构建工具xxx
  • 安卓模拟器
  • 英特尔 x86 仿真器加速器(HAXM 安装程序)

答案 6 :(得分:0)

我在构建 AOSP 然后从同一终端启动模拟器时遇到了类似的问题

OP 的后期帖子,但我希望这有助于其他人为早期版本的 AOSP 构建(OP 为 API 25 发布构建)。

问题:

我确定您知道,要配置 AOSP 构建,您需要运行:

  1. $ . build/envsetup.sh
  2. $ 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)

enter image description here工具 SDK管理器 SDK 工具..

这里遵循一个简单的技巧。

  1. 如果 (Android Emulator)CheckBox 已被选中。
  2. 取消选中复选框。
  3. 申请
  4. 好的
  5. 再次打开TOOLS-->SDK MANAGER-->SDK TOOLS
  6. 检查 Android 模拟器复选框

通过执行此旧设置将默认删除。 模拟器的新设置将可用。

enter image description here