加载共享库时出现错误:libpulse.so.0:不能打开共享对象文件:没有这样的文件或目录



我正在尝试在Docker容器中运行Android模拟器。

/opt/android-sdk/emulator/emulator -avd "Android_API_29" -noaudio -no-boot-anim -netdelay none -accel on $no_window -no-snapshot -memory 4096 -partition-size 4096 &

但是我得到这个错误:

/opt/android-sdk/emulator/qemu/linux-x86_64/qemu-system-x86_64:加载共享库时出现错误:libpulse.so。0:无法打开共享目标文件:没有这样的文件或目录

然后尝试等待模拟器启动:

while [ "`adb shell getprop sys.boot_completed | tr -d 'r' `" != "1" ] ; do sleep 1; done

但是adb找不到设备:

adb: no devices/emulators found

在运行模拟器之前,我使用以下命令对其进行设置。

# Download Android Platform Tools
sdkmanager --install "platform-tools" "platforms;android-29"
# Download Android System Image
sdkmanager --install "system-images;android-29;google_apis;x86"
# Create Emulator
echo "no" | avdmanager --verbose create avd --name "Android_API_29" --package "system-images;android-29;google_apis;x86" --force
# Configure Emulator Settings
echo "hw.lcd.width=1080" >> ~/.android/avd/Android_API_29.avd/config.ini
echo "hw.lcd.height=1920" >> ~/.android/avd/Android_API_29.avd/config.ini
echo "hw.lcd.density=440" >> ~/.android/avd/Android_API_29.avd/config.ini
echo "hw.initialOrientation=Portrait" >> ~/.android/avd/Android_API_29.avd/config.ini
echo "hw.keyboard=yes" >> ~/.android/avd/Android_API_29.avd/config.ini
echo "hw.mainKeys=yes" >> ~/.android/avd/Android_API_29.avd/config.ini

Docker镜像正在运行openjdk:11.0.13-slim,并且安装了Android命令行工具。

我错过了什么?为什么模拟器不能正确启动?

似乎您正在尝试使用-no-window标志运行模拟器,但您使用错误。

-no-window代替$no_window

# Before
/opt/android-sdk/emulator/emulator -avd "Android_API_29" -noaudio -no-boot-anim -netdelay none -accel on $no_window -no-snapshot -memory 4096 -partition-size 4096 &
# After
/opt/android-sdk/emulator/emulator -avd "Android_API_29" -noaudio -no-boot-anim -netdelay none -accel on -no-window -no-snapshot -memory 4096 -partition-size 4096 &

-no-window标志将减少运行模拟器所需的依赖项数量。

禁用仿真器上的图形窗口显示。当在没有显示的服务器上运行模拟器时,此选项非常有用。您仍然可以通过adb或控制台访问模拟器。

https://developer.android.com/studio/run/emulator-commandline先进

最新更新