diff --git a/lib/sdk-installer.js b/lib/sdk-installer.js index ce320386..49c940de 100644 --- a/lib/sdk-installer.js +++ b/lib/sdk-installer.js @@ -51,6 +51,7 @@ function installAndroidSdk(apiLevel, target, arch, channelId, emulatorBuild, ndk try { console.log(`::group::Install Android SDK`); const isOnMac = process.platform === 'darwin'; + const isArm = process.arch === 'arm64'; if (!isOnMac) { yield exec.exec(`sh -c \\"sudo chown $USER:$USER ${process.env.ANDROID_HOME} -R`); } @@ -75,7 +76,22 @@ function installAndroidSdk(apiLevel, target, arch, channelId, emulatorBuild, ndk if (emulatorBuild) { console.log(`Installing emulator build ${emulatorBuild}.`); // TODO find out the correct download URLs for all build ids - const downloadUrlSuffix = Number(emulatorBuild.charAt(0)) > 6 ? `_x64-${emulatorBuild}` : `-${emulatorBuild}`; + var downloadUrlSuffix; + const majorBuildVersion = Number(emulatorBuild); + if (majorBuildVersion >= 8000000) { + if (isArm) { + downloadUrlSuffix = `_aarch64-${emulatorBuild}`; + } + else { + downloadUrlSuffix = `_x64-${emulatorBuild}`; + } + } + else if (majorBuildVersion >= 7000000) { + downloadUrlSuffix = `_x64-${emulatorBuild}`; + } + else { + downloadUrlSuffix = `-${emulatorBuild}`; + } yield exec.exec(`curl -fo emulator.zip https://dl.google.com/android/repository/emulator-${isOnMac ? 'darwin' : 'linux'}${downloadUrlSuffix}.zip`); yield exec.exec(`unzip -o -q emulator.zip -d ${process.env.ANDROID_HOME}`); yield io.rmRF('emulator.zip');