diff --git a/lib/sdk-installer.js b/lib/sdk-installer.js index b420f0ff..4c3c0dc0 100644 --- a/lib/sdk-installer.js +++ b/lib/sdk-installer.js @@ -71,27 +71,27 @@ function installAndroidSdk(apiLevel, target, arch, emulatorBuild, ndkVersion, cm fs.writeFileSync(sdkArmDbtLicensePath, '\n859f317696f67ef3d7f30a50a5560e7834b43903'); } console.log('Installing latest build tools, platform tools, and platform.'); - yield exec.exec(`sh -c \\"sdkmanager --install 'build-tools;${BUILD_TOOLS_VERSION}' platform-tools 'platforms;android-${apiLevel}' > /dev/null"`); + const sdkmanagerExec = IS_WINDOWS ? 'sdkmanager.bat' : 'sdkmanagert'; + yield exec.exec(`sh -c \\"${sdkmanagerExec} --install 'build-tools;${BUILD_TOOLS_VERSION}' platform-tools 'platforms;android-${apiLevel}' > /dev/null"`); if (emulatorBuild) { console.log(`Installing emulator build ${emulatorBuild}.`); - yield exec.exec(`curl -fo emulator.zip https://dl.google.com/android/repository/emulator-${IS_MAC ? 'darwin' : IS_WINDOWS ? 'windows' : 'linux'}-${emulatorBuild}.zip`); yield io.rmRF(`${process.env.ANDROID_HOME}/emulator`); - yield exec.exec(`unzip -q emulator.zip -d ${process.env.ANDROID_HOME}`); - yield io.rmRF('emulator.zip'); + const downloadPath = yield tc.downloadTool(`https://dl.google.com/android/repository/emulator-${IS_MAC ? 'darwin' : IS_WINDOWS ? 'windows' : 'linux'}-${emulatorBuild}.zip`); + yield tc.extractZip(downloadPath, process.env.ANDROID_HOME); } else { console.log('Installing latest emulator.'); - yield exec.exec(`sh -c \\"sdkmanager --install emulator > /dev/null"`); + yield exec.exec(`sh -c \\"${sdkmanagerExec} --install emulator > /dev/null"`); } console.log('Installing system images.'); - yield exec.exec(`sh -c \\"sdkmanager --install 'system-images;android-${apiLevel};${target};${arch}' > /dev/null"`); + yield exec.exec(`sh -c \\"${sdkmanagerExec} --install 'system-images;android-${apiLevel};${target};${arch}' > /dev/null"`); if (ndkVersion) { console.log(`Installing NDK ${ndkVersion}.`); - yield exec.exec(`sh -c \\"sdkmanager --install 'ndk;${ndkVersion}' > /dev/null"`); + yield exec.exec(`sh -c \\"${sdkmanagerExec} --install 'ndk;${ndkVersion}' > /dev/null"`); } if (cmakeVersion) { console.log(`Installing CMake ${cmakeVersion}.`); - yield exec.exec(`sh -c \\"sdkmanager --install 'cmake;${cmakeVersion}' > /dev/null"`); + yield exec.exec(`sh -c \\"${sdkmanagerExec} --install 'cmake;${cmakeVersion}' > /dev/null"`); } }); } diff --git a/src/sdk-installer.ts b/src/sdk-installer.ts index 3d3dc9c0..6ebdb9e1 100644 --- a/src/sdk-installer.ts +++ b/src/sdk-installer.ts @@ -48,26 +48,27 @@ export async function installAndroidSdk(apiLevel: number, target: string, arch: console.log('Installing latest build tools, platform tools, and platform.'); - await exec.exec(`sh -c \\"sdkmanager --install 'build-tools;${BUILD_TOOLS_VERSION}' platform-tools 'platforms;android-${apiLevel}' > /dev/null"`); + const sdkmanagerExec = IS_WINDOWS ? 'sdkmanager.bat' : 'sdkmanagert'; + + await exec.exec(`sh -c \\"${sdkmanagerExec} --install 'build-tools;${BUILD_TOOLS_VERSION}' platform-tools 'platforms;android-${apiLevel}' > /dev/null"`); if (emulatorBuild) { console.log(`Installing emulator build ${emulatorBuild}.`); - await exec.exec(`curl -fo emulator.zip https://dl.google.com/android/repository/emulator-${IS_MAC ? 'darwin' : IS_WINDOWS ? 'windows' : 'linux'}-${emulatorBuild}.zip`); await io.rmRF(`${process.env.ANDROID_HOME}/emulator`); - await exec.exec(`unzip -q emulator.zip -d ${process.env.ANDROID_HOME}`); - await io.rmRF('emulator.zip'); + const downloadPath = await tc.downloadTool(`https://dl.google.com/android/repository/emulator-${IS_MAC ? 'darwin' : IS_WINDOWS ? 'windows' : 'linux'}-${emulatorBuild}.zip`); + await tc.extractZip(downloadPath, process.env.ANDROID_HOME); } else { console.log('Installing latest emulator.'); - await exec.exec(`sh -c \\"sdkmanager --install emulator > /dev/null"`); + await exec.exec(`sh -c \\"${sdkmanagerExec} --install emulator > /dev/null"`); } console.log('Installing system images.'); - await exec.exec(`sh -c \\"sdkmanager --install 'system-images;android-${apiLevel};${target};${arch}' > /dev/null"`); + await exec.exec(`sh -c \\"${sdkmanagerExec} --install 'system-images;android-${apiLevel};${target};${arch}' > /dev/null"`); if (ndkVersion) { console.log(`Installing NDK ${ndkVersion}.`); - await exec.exec(`sh -c \\"sdkmanager --install 'ndk;${ndkVersion}' > /dev/null"`); + await exec.exec(`sh -c \\"${sdkmanagerExec} --install 'ndk;${ndkVersion}' > /dev/null"`); } if (cmakeVersion) { console.log(`Installing CMake ${cmakeVersion}.`); - await exec.exec(`sh -c \\"sdkmanager --install 'cmake;${cmakeVersion}' > /dev/null"`); + await exec.exec(`sh -c \\"${sdkmanagerExec} --install 'cmake;${cmakeVersion}' > /dev/null"`); } }