我已经将Mac OS升级到Big Sur,并且没有一个仿真器正在运行。似乎所有Android模拟器在Mac OS Big Sur Beta上均失败。我删除了旧的模拟器,并用不同的硬件/软件创建了新的模拟器,但未成功。在android模拟器中引入了以下问题。
https://issuetracker.google.com/issues/165038831
有人可以解决吗?
答案 0 :(得分:31)
更新:现在应该由稳定频道中的 Android 模拟器 30.5.6 版修复此问题。
但是,如果您现在在更新到最新版本的 Android Emulator 后遇到问题,您可以通过从 SDK 管理器中删除 Android Emulator 然后再重新添加来解决此问题。
工具 > SDK 管理器 > SDK 工具
取消选中 Android Emulator 并点击应用。
检查 Android 模拟器并点击应用。
原答案:
这对我有用https://www.arthurkoziel.com/qemu-on-macos-big-sur
本质上,创建一个名为 entitlements.xml
的 XML 文件,其内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.hypervisor</key>
<true/>
</dict>
</plist>
将 XML 文件复制到 ~/Library/Android/sdk/emulator/qemu/darwin-x86_64
然后在终端中运行以下命令:
codesign -s - --entitlements entitlements.xml --force qemu-system-aarch64
codesign -s - --entitlements entitlements.xml --force qemu-system-aarch64-headless
codesign -s - --entitlements entitlements.xml --force qemu-system-armel
codesign -s - --entitlements entitlements.xml --force qemu-system-armel-headless
codesign -s - --entitlements entitlements.xml --force qemu-system-i386
codesign -s - --entitlements entitlements.xml --force qemu-system-i386-headless
codesign -s - --entitlements entitlements.xml --force qemu-system-x86_64
codesign -s - --entitlements entitlements.xml --force qemu-system-x86_64-headless
答案 1 :(得分:8)
解决问题的步骤:
1.打开终端并进入目录/Users/<username>/Library/Android/sdk/emulator/qemu/darwin-x86_64/
2.使用entitlements.xml
或touch
命令创建一个名为cat
的xml文件
3.将此内容添加到 entitlements.xml
文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.hypervisor</key>
<true/>
</dict>
</plist>
4.然后简单地用它签署 qemu-system-x86_64:
codesign -s - --entitlements entitlements.xml --force qemu-system-x86_64
5.现在只需重新启动 Android Studio,Android 模拟器就应该可以再次运行了!
答案 2 :(得分:5)
更新,2020年1月1日
Android仿真器团队已推送30.1.5,此问题已稳定修复。开发版本30.2.0不包含此修复程序。根据Googler的工作,它应该“很快”可用。
另一个要注意的是,如果您在模拟器中遇到的性能不佳,则可能希望尝试使用主机的GPU进行渲染。这可以通过在终端中运行以下命令来实现,其中-avd是仿真器设备的名称,空格变为下划线。
~/Library/Android/sdk/emulator/emulator -gpu host -feature HVF -avd pixel_3a_api_29
旧信息,出于教育价值而保留:
This是针对Big Sur解决此问题的提交的引用。看起来它应该在模拟器30.1.5中发布(请参阅日志https://android.googlesource.com/platform/external/qemu/+log/refs/heads/emu-30-release),该模拟器应该在下一个Canary构建中。
如果您迫不及待,则应该能够建立该分支。经过严格测试的指南从仓库的自述文件中抽出大量精力:
# Get the google repo tool - you can skip if you already have it
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > /usr/local/bin/repo && chmod +x /usr/local/bin/repo
# Get the code, will take some time. Probably best to go get a coffee here or run on a server if you have poor internet
mkdir -p $HOME/emu-master-dev && cd $HOME/emu-master-dev
repo init -u https://android.googlesource.com/platform/manifest -b emu-master-dev
repo sync -j8
# Get XCode 10.1 - required
https://download.developer.apple.com/Developer_Tools/Xcode_10.1/Xcode_10.1.xip
sudo xcodebuild -license accept &&
sudo xcode-select --install
# Get MacOS 10.13 SDK which is required
export XCODE_PATH=$(xcode-select -print-path 2>/dev/null)
git clone https://github.com/phracker/MacOSX-SDKs
cp -r MacOSX-SDKs/MacOSX10.13.sdk/ "$XCODE_PATH/Platforms/MacOSX.platform/Developer/SDKs"
# Build the emulator, which will be another coffee break...
cd external/qemu && android/rebuild.sh
# run it :)
./objs/emulator -list-avds
答案 3 :(得分:2)
我的解决方案是擦除Android Studio AVD中的数据,然后使用./emulator @ Pixel_3a_API_29命令一次又一次地启动它,直到成功启动。
答案 4 :(得分:2)
尝试了许多关于SO的答案/评论后,发现此替代方法可行且可重复:
我使用了Pixel 3和3a,API 30,默认选项
const str = `<div class="date">
<span>
<i class="far fa-user"></i> {Name}
<i class="fas fa-link"></i> LINK
<i class="fas fa-sync-alt"></i> {ReblogSource}
</span>
<span>
irrelevant content
</span>
</div>`
const $div = $('<div>').html(str)
$div.find('.date span:first').contents().each(function() {
const $el = $(this);
if ($el.hasClass('fa-link')) {
return false // breaks loop
}
$el.remove();
});
console.log($div.html())
CLI启动AVD emulator
您会看到臭名昭著的
$ ~/Library/Android/sdk/emulator/emulator @Pixel_3a_API_30
...unhandled exit 1d
取消命令或按模拟器侧边栏上的⌃ + c
您应该会看到有关“保存状态”的微调器...
5。点击 DISMISS (或等待),然后模拟器应启动到Android
注意:从Android Studio / AVD Manager GUI启动相同的AVD仍然会遇到此异常,因此,在需要时,请像在步骤2中一样启动模拟器。
答案 5 :(得分:2)
在上一次BigSur beta更新(11.0 Beta(20A5395g))之后,Android Studio继续关闭。如果我打开任何子窗口,UI都没有响应...
再也没有beta
答案 6 :(得分:1)
正如@Demirezen 所提到的,目前,这是一个代码签名问题 see details here。 自己进行代码签名或使用来自 canary build 的模拟器 30.6.4 都可以解决问题。
答案 7 :(得分:0)
像这样运行模拟器:
~/Library/Android/sdk/emulator/emulator -wipe-data @Pixel_3a_API_30
为我修复了。
答案 8 :(得分:0)
似乎可以与模拟器 30.2.6
一起使用(目前是 Beta 频道中的最新版本)
虽然锁文件存在问题,阻止了 emu 启动。
这是让一切恢复正常的原因:
~/.android/avd/*.avd/
文件夹并删除 hardware-qemu.ini.lock
文件(如果存在)。答案 9 :(得分:0)
使缓存无效/重新启动并重新创建图像,似乎某些幕后配置不向前兼容。
答案 10 :(得分:0)
/Users/<your user>/Library/Android/sdk/emulator/qemu/
64
,则:arm64-v8a
+ API LEVEL= S 创建虚拟设备在这些步骤之后应该打开模拟器。
答案 11 :(得分:0)
我遇到了同样的问题,只需将您的 android studio 和所有 sdk 工具更新到最新版本,一切都会正常运行。
答案 12 :(得分:0)
添加适当的 ANDROID_AVD_HOME
会有所帮助。
您可以将 export ANDROID_AVD_HOME=$HOME/.android/avd
添加到 ~/.bash_profile
答案 13 :(得分:0)
花了一整天尝试不同的方法,包括下载 qemu。最后......进入Android SDK> SDK工具>更新所有内容,确保已安装并勾选HAXM安装程序。成功了!