在 docker 容器中创建 android 模拟器时出现“sh: 1: file: not found”

Leo*_*ani 5 android android-emulator docker dockerfile

我正在尝试在 docker 容器中创建一个 android 模拟器,但遇到了一些问题。

SDK更新和AVD创建成功,我尝试创建模拟器,出现以下错误:

./emulator -avd test-22 -no-skin -no-audio -no-window

sh: 1: file: not found
sh: 1: file: not found

WARNING: Cannot decide host bitness because $SHELL is not properly defined; 32 bits assumed.

ERROR: 32-bit Linux Android emulator binaries are DEPRECATED, to use them
Run Code Online (Sandbox Code Playgroud)

注意:运行最后一个 docker 版本并使用 java:8-jdk 镜像。

我的 dockerfile 可以在这里找到 => https://gist.github.com/leoGalani/1f74621b8e82bd5bc8db586d1f34b8a2

-- 有些人告诉我为 API22 安装 x86 intel ABI/ARM,但我无法找到包名,所以我可以通过命令行安装它。

小智 2

我有同样的问题,我通过 apt 使用安装文件命令解决了这个问题。但还没有工作,当我找到解决方案时我会更新。

apt-get install  -y --no-install-recommends file libmagic1 libglu1-mesa mesa-utils libpci3 pciutils libpulse0
Run Code Online (Sandbox Code Playgroud)

编辑:将软件包添加到您的 docker 文件后我找到了解决方案

也添加你的 docker 文件这些命令

mv /bin/sh /bin/sh.backup 
cp /bin/bash /bin/sh
Run Code Online (Sandbox Code Playgroud)

并创建新容器

--device /dev/dri --device /dev/video0 --device /dev/snd --device /dev/kvm 
Run Code Online (Sandbox Code Playgroud)

现在很可能是工作。