最一開始 Android Studio 上的模擬器 (emulator) 是不支援 M1 Mac 的,所以那時候 Google 有釋出一個獨立的 preview 版本讓開發者們可以試用。後來隨著 Android Studio 更新,就開始內建提供支援 M1 Mac 的模擬器。
我已經好一陣子沒有用模擬器了,大部分時間都直接用手機做開發跟測試。所以上次把電腦裡的模擬器從 preview 版本換到內建版本後,就只是簡單地打開來看看而已,並沒有做其他測試。直到今天,要來 build app 放到模擬器上測試時,才發現 adb 一直認為這台模擬器是 offline。不管我怎麼重開、重安裝、adb kill-server && adb start-server 都沒用。
後來 google 了才發現 (Emulator appearing offline on M1 Mac after the last update of arm64-v8a),原來這很可能是 images 的問題,而且從 revision 3 就開始了。解決方法就是使用 revision 2 的 images,並暫時不要更新它們。
1. 下載 Google Play ARM 64 v8a System Image (r02) 跟 Google APIs ARM 64 v8a System Image (r02)。
2. 分別解壓縮之後,把它們放到相對應的資料夾底下。例如我是把 Android SDK 安裝在 ~/Library/Android/sdk,所以我就把這兩個資料夾分別放到 SDK 底下的 system-images/android-S/google_apis_playstore 跟 system-images/android-S/google_apis。
之後回到 Android Studio 的 AVD Manager,就可以選這兩個 images 來創建新的模擬器,而且 adb 也可以成功連到它了。