模拟器在内核映像文件中找不到 'Linux version ' 字符串
Emulator can't find 'Linux version ' string in kernel image file
我正在为 Nexus Player 构建 AOSP,编译成功后我尝试 运行 模拟器,我收到的消息是:
emulator: ERROR: Can't find 'Linux version ' string in kernel image
file: /home/mita/Work/Nexus/out/target/product/fugu/kernel
我找不到任何相关信息,请有人帮忙。
完整的输出是:
emulator:Found ANDROID_PRODUCT_OUT: /home/mita/Work/Nexus/out/target/product/fugu emulator:Found build
target architecture: x86 emulator:Looking for emulator-x86 to emulate
'x86' CPU emulator:Probing program: ./emulator64-x86 emulator:Probing
program: ./emulator-x86 emulator:Probing path for: emulator64-x86
emulator:return result:
/home/mita/Work/Nexus/prebuilts/android-emulator/linux-x86_64/emulator64-x86
emulator:Found target-specific emulator binary:
/home/mita/Work/Nexus/prebuilts/android-emulator/linux-x86_64/emulator64-x86
emulator:GPU emulation is disabled emulator: Running
:/home/mita/Work/Nexus/prebuilts/android-emulator/linux-x86_64/emulator64-x86
emulator: qemu backend: argv[00] =
"/home/mita/Work/Nexus/prebuilts/android-emulator/linux-x86_64/emulator64-x86"
emulator: qemu backend: argv[01] = "-verbose" emulator: Concatenated
backend parameters:
/home/mita/Work/Nexus/prebuilts/android-emulator/linux-x86_64/emulator64-x86
-verbose emulator: found Android build root: /home/mita/Work/Nexus emulator: found Android build out:
/home/mita/Work/Nexus/out/target/product/fugu emulator: Read property
file at
/home/mita/Work/Nexus/out/target/product/fugu/system/build.prop
emulator: Cannot find boot properties file:
/home/mita/Work/Nexus/out/target/product/fugu/boot.prop
emulator: Found target API sdkVersion: 25
emulator: virtual device has no config file - no problem emulator:
using core hw config path:
/home/mita/Work/Nexus/out/target/product/fugu/hardware-qemu.ini
emulator: found skin-specific hardware.ini:
/home/mita/Work/Nexus/development/tools/emulator/skins/HVGA/hardware.ini
emulator: autoconfig: -skin HVGA emulator: autoconfig: -skindir
/home/mita/Work/Nexus/development/tools/emulator/skins emulator: found
skin-specific hardware.ini:
/home/mita/Work/Nexus/development/tools/emulator/skins/HVGA/hardware.ini
emulator: keyset loaded from: /home/mita/.android/default.keyset
emulator: trying to load skin file
'/home/mita/Work/Nexus/development/tools/emulator/skins/HVGA/layout'
emulator: skin network speed: 'full' emulator: skin network delay:
'none' emulator: autoconfig: -kernel
/home/mita/Work/Nexus/out/target/product/fugu/kernel emulator: Target
arch = 'x86' emulator: Auto-config: -qemu -cpu qemu32 emulator: ERROR:
Can't find 'Linux version ' string in kernel image file:
/home/mita/Work/Nexus/out/target/product/fugu/kernel
回答我自己的问题:
如果您为 fugu - Nexus Player build 编译,则不能 运行 在模拟器上构建。
检查您的 Android SDK 设置 -> SDK 工具
启用 HAXM 安装程序(如果你有英特尔)
like here
对我有帮助,祝你好运!
我遇到了这个错误,原因是我的模拟器 运行 是旧版本。我去了 SDK Manager 并更新了 Android Emulator
Tools > SDK Manager > SDK Tools > Android Emulator > Mark it checked to force update > Accept
在此之后,模拟器 运行 正确
我也遇到了这个错误,原因是我的模拟器 运行使用了旧版本。我去了 SDK Manager 并更新了 Android Emulator
我按照@voghdev
的步骤
Tools > SDK Manager > SDK Tools > Android Emulator > Mark it checked to force update > Accept
还要确保模拟器有足够的 space 可用 运行。
它需要大约 8GB 的磁盘 space。
在此之后,模拟器 运行 正确
见上面@voghDev 的回答,
Tools > SDK Manager > SDK Tools > Android Emulator > Mark it checked
to force update > Accept
只需转到“工具”>“SDK 管理器”>“SDK 工具”
并更新您所选选项下可能提供的内容。
它可以做很多事情:
- Android SDK 构建工具 xxx
- Android 模拟器
- Intel x86 模拟器加速器(HAXM 安装程序)
我在构建 AOSP 然后从同一终端启动模拟器时遇到了类似的问题
OP 已晚 post,但我希望这有助于其他人构建早期版本的 AOSP(OP posted build for API 25)。
问题:
我相信您已经知道,要配置 AOSP 构建,您 运行:
$ . build/envsetup.sh
$ lunch
(然后 select 你的构建目标)
在 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版本而不是 emulator
.
的 Android Sdk 版本
简而言之,当您从命令行 运行 $ emulator
after 运行ning $ lunch
,您将成为 运行 的 emulator
的 AOSP 版本,它与您正在构建的 AOSP 版本相关联。 (在我的例子中,它是 AOSP 的旧版本)
解法:
除了正确指出您需要更新 Android Sdk 中的模拟器版本的其他答案之外,您还需要确保 运行 正在 emulator
命令来自 Android Sdk 路径,而不是来自 AOSP 模拟器路径。
要快速检查,您可以使用 $ which emulator
。这将向您显示 运行 当 运行ning $ emulator
时的命令的完整路径
“正确”路径应该是这样的:
/home/user-name/Android/Sdk/emulator/emulator
.
在 运行ning $ lunch
之后,路径将显示为:
/home/user-name/aosp-home-dir/prebuilts/android-emulator/<target>/emulator
TL;DR
如果您 运行ning $ emulator
来自与构建 AOSP 所用的同一终端,请尝试从新终端 运行ning $ emulator
。此外,您应该使用 $ which emulator
.
确认 emulator
命令的路径
$ which emulator
应该指向 < Android Sdk dir >/emulator/emulator
的模拟器位置, 不是 模拟器的 AOSP 版本。
注意:< Android Sdk dir >
通常安装到 ~/Android/Sdk
工具
SDK管理器
SDK 工具..
下面是一个简单的技巧。
- 如果 (Android Emulator)CheckBox 已被选中。
- 取消选中复选框。
- 申请
- 好的
- 再次打开TOOLS-->SDK MANAGER-->SDK TOOLS
- 选中 Android 模拟器复选框
默认情况下,旧设置将被删除。
模拟器的新设置将可用。
enter image description here
我正在为 Nexus Player 构建 AOSP,编译成功后我尝试 运行 模拟器,我收到的消息是:
emulator: ERROR: Can't find 'Linux version ' string in kernel image file: /home/mita/Work/Nexus/out/target/product/fugu/kernel
我找不到任何相关信息,请有人帮忙。
完整的输出是:
emulator:Found ANDROID_PRODUCT_OUT: /home/mita/Work/Nexus/out/target/product/fugu emulator:Found build target architecture: x86 emulator:Looking for emulator-x86 to emulate 'x86' CPU emulator:Probing program: ./emulator64-x86 emulator:Probing program: ./emulator-x86 emulator:Probing path for: emulator64-x86 emulator:return result: /home/mita/Work/Nexus/prebuilts/android-emulator/linux-x86_64/emulator64-x86 emulator:Found target-specific emulator binary: /home/mita/Work/Nexus/prebuilts/android-emulator/linux-x86_64/emulator64-x86 emulator:GPU emulation is disabled emulator: Running :/home/mita/Work/Nexus/prebuilts/android-emulator/linux-x86_64/emulator64-x86 emulator: qemu backend: argv[00] = "/home/mita/Work/Nexus/prebuilts/android-emulator/linux-x86_64/emulator64-x86" emulator: qemu backend: argv[01] = "-verbose" emulator: Concatenated backend parameters: /home/mita/Work/Nexus/prebuilts/android-emulator/linux-x86_64/emulator64-x86 -verbose emulator: found Android build root: /home/mita/Work/Nexus emulator: found Android build out: /home/mita/Work/Nexus/out/target/product/fugu emulator: Read property file at /home/mita/Work/Nexus/out/target/product/fugu/system/build.prop emulator: Cannot find boot properties file: /home/mita/Work/Nexus/out/target/product/fugu/boot.prop
emulator: Found target API sdkVersion: 25
emulator: virtual device has no config file - no problem emulator: using core hw config path: /home/mita/Work/Nexus/out/target/product/fugu/hardware-qemu.ini emulator: found skin-specific hardware.ini: /home/mita/Work/Nexus/development/tools/emulator/skins/HVGA/hardware.ini emulator: autoconfig: -skin HVGA emulator: autoconfig: -skindir /home/mita/Work/Nexus/development/tools/emulator/skins emulator: found skin-specific hardware.ini: /home/mita/Work/Nexus/development/tools/emulator/skins/HVGA/hardware.ini emulator: keyset loaded from: /home/mita/.android/default.keyset emulator: trying to load skin file '/home/mita/Work/Nexus/development/tools/emulator/skins/HVGA/layout' emulator: skin network speed: 'full' emulator: skin network delay: 'none' emulator: autoconfig: -kernel /home/mita/Work/Nexus/out/target/product/fugu/kernel emulator: Target arch = 'x86' emulator: Auto-config: -qemu -cpu qemu32 emulator: ERROR: Can't find 'Linux version ' string in kernel image file: /home/mita/Work/Nexus/out/target/product/fugu/kernel
回答我自己的问题:
如果您为 fugu - Nexus Player build 编译,则不能 运行 在模拟器上构建。
检查您的 Android SDK 设置 -> SDK 工具 启用 HAXM 安装程序(如果你有英特尔) like here
对我有帮助,祝你好运!
我遇到了这个错误,原因是我的模拟器 运行 是旧版本。我去了 SDK Manager 并更新了 Android Emulator
Tools > SDK Manager > SDK Tools > Android Emulator > Mark it checked to force update > Accept
在此之后,模拟器 运行 正确
我也遇到了这个错误,原因是我的模拟器 运行使用了旧版本。我去了 SDK Manager 并更新了 Android Emulator
我按照@voghdev
的步骤Tools > SDK Manager > SDK Tools > Android Emulator > Mark it checked to force update > Accept
还要确保模拟器有足够的 space 可用 运行。
它需要大约 8GB 的磁盘 space。
在此之后,模拟器 运行 正确
见上面@voghDev 的回答,
Tools > SDK Manager > SDK Tools > Android Emulator > Mark it checked to force update > Accept
只需转到“工具”>“SDK 管理器”>“SDK 工具” 并更新您所选选项下可能提供的内容。
它可以做很多事情:
- Android SDK 构建工具 xxx
- Android 模拟器
- Intel x86 模拟器加速器(HAXM 安装程序)
我在构建 AOSP 然后从同一终端启动模拟器时遇到了类似的问题
OP 已晚 post,但我希望这有助于其他人构建早期版本的 AOSP(OP posted build for API 25)。
问题:
我相信您已经知道,要配置 AOSP 构建,您 运行:
$ . build/envsetup.sh
$ lunch
(然后 select 你的构建目标)
在 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版本而不是 emulator
.
简而言之,当您从命令行 运行 $ emulator
after 运行ning $ lunch
,您将成为 运行 的 emulator
的 AOSP 版本,它与您正在构建的 AOSP 版本相关联。 (在我的例子中,它是 AOSP 的旧版本)
解法:
除了正确指出您需要更新 Android Sdk 中的模拟器版本的其他答案之外,您还需要确保 运行 正在 emulator
命令来自 Android Sdk 路径,而不是来自 AOSP 模拟器路径。
要快速检查,您可以使用 $ which emulator
。这将向您显示 运行 当 运行ning $ emulator
“正确”路径应该是这样的:
/home/user-name/Android/Sdk/emulator/emulator
.
在 运行ning $ lunch
之后,路径将显示为:
/home/user-name/aosp-home-dir/prebuilts/android-emulator/<target>/emulator
TL;DR
如果您 运行ning $ emulator
来自与构建 AOSP 所用的同一终端,请尝试从新终端 运行ning $ emulator
。此外,您应该使用 $ which emulator
.
emulator
命令的路径
$ which emulator
应该指向 < Android Sdk dir >/emulator/emulator
的模拟器位置, 不是 模拟器的 AOSP 版本。
注意:< Android Sdk dir >
通常安装到 ~/Android/Sdk
下面是一个简单的技巧。
- 如果 (Android Emulator)CheckBox 已被选中。
- 取消选中复选框。
- 申请
- 好的
- 再次打开TOOLS-->SDK MANAGER-->SDK TOOLS
- 选中 Android 模拟器复选框
默认情况下,旧设置将被删除。 模拟器的新设置将可用。
enter image description here