Apple M1 Max设备创建Android模拟器时触发NullPointerException问题
Apple M1 Max创建Android模拟器时触发NullPointerException崩溃
报错堆栈
java.lang.NullPointerException at com.android.tools.idea.devicemanager.virtualtab.BuildVirtualDeviceConfigurationWizardActionListener.actionPerformed(BuildVirtualDeviceConfigurationWizardActionListener.java:45) at com.intellij.util.ui.StatusText$1.onClick(StatusText.java:79) at com.intellij.ui.ClickListener$1.mouseReleased(ClickListener.java:59) at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:298) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6654) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3345) at com.intellij.ui.table.JBTable.processMouseEvent(JBTable.java:764) at java.desktop/java.awt.Component.processEvent(Component.java:6419) at java.desktop/java.awt.Container.processEvent(Container.java:2263) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5029) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4861) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2790) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4861) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:891) at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:820) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:757) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:447) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:818) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:446) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:805) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:498) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
环境配置
- Android Studio 2021.3.1 Patch 1
- macOS 12.6.1
- 芯片:Apple M1 MAX,64GB内存
已尝试的解决方法
- 创建不同ARM架构系统镜像(Tiramisu、S、R,含/不含Google API),带/不带Play Store的设备
- 使用命令行创建模拟器:
./avdmanager create avd -f -n "emulator" -d 25 -k 'system-images;android-31;default;arm64-v8a'
可行解决建议
- 升级Android Studio到最新稳定版:2021.3.1版本对M1芯片的模拟器支持存在已知BUG,后续版本已修复相关空指针问题
- 清理Android Studio缓存:依次点击
File → Invalidate Caches...,选择Invalidate and Restart,重启后再尝试创建模拟器 - 更新SDK组件:打开SDK Manager,确保
SDK Tools中的Android Emulator、Android SDK Platform-Tools为最新版本,同时确认对应ARM64的系统镜像已完整下载 - 删除AVD缓存目录:手动删除
~/.android/avd/和~/.android/cache/下的所有文件,清空残留配置后重新创建 - 检查系统权限:在系统设置→隐私与安全性→文件与文件夹中,确认Android Studio已获得磁盘访问权限
- 临时尝试Canary版本:如果稳定版升级后仍有问题,可以下载Android Studio Canary版本测试,其对M1芯片的兼容性优化更激进
内容的提问来源于stack exchange,提问作者Kamil Kamiński
相关产品推荐
相关产品推荐

