{"record":{"id":"80afcc1280c09000","repo":"microsoft/playwright","slug":"please-install-android-driver-apk-using-package","errorCode":null,"errorMessage":"Please install Android driver apk using '${packageManagerCommand} playwright install android'","messagePattern":"Please install Android driver apk using '(.+?) playwright install android'","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/playwright-core/src/server/android/android.ts","lineNumber":191,"sourceCode":"  }\n\n  private async _installDriver(progress: Progress): Promise<PipeTransport> {\n    debug('pw:android')('Stopping the old driver');\n    await progress.race(this._shell(`am force-stop com.microsoft.playwright.androiddriver`));\n\n    // uninstall and install driver on every execution\n    if (!this._options.omitDriverInstall) {\n      debug('pw:android')('Uninstalling the old driver');\n      await this.shell(progress, `cmd package uninstall com.microsoft.playwright.androiddriver`);\n      await this.shell(progress, `cmd package uninstall com.microsoft.playwright.androiddriver.test`);\n\n      debug('pw:android')('Installing the new driver');\n      const executable = registry.findExecutable('android')!;\n      const packageManagerCommand = getPackageManagerExecCommand();\n      for (const file of ['android-driver.apk', 'android-driver-target.apk']) {\n        const fullName = path.join(executable.directory!, file);\n        if (!fs.existsSync(fullName))\n          throw new Error(`Please install Android driver apk using '${packageManagerCommand} playwright install android'`);\n        await this.installApk(progress, await progress.race(fs.promises.readFile(fullName)));\n      }\n    } else {\n      debug('pw:android')('Skipping the driver installation');\n    }\n\n    debug('pw:android')('Starting the new driver');\n    this._shell('am instrument -w com.microsoft.playwright.androiddriver.test/androidx.test.runner.AndroidJUnitRunner').catch(e => debug('pw:android')(e));\n    const socket = await this._waitForLocalAbstract(progress, 'playwright_android_driver_socket');\n    const transport = new PipeTransport(socket, socket, socket, 'be');\n    transport.onmessage = message => {\n      const response = JSON.parse(message);\n      const { id, result, error } = response;\n      const callback = this._callbacks.get(id);\n      if (!callback)\n        return;\n      if (error)\n        callback.reject(new Error(error));","sourceCodeStart":173,"sourceCodeEnd":209,"githubUrl":"https://github.com/microsoft/playwright/blob/c8fc3bf8d31542d59b4d4d9eaab1df93ff541dc6/packages/playwright-core/src/server/android/android.ts#L173-L209","documentation":"Error \"Please install Android driver apk using '${packageManagerCommand} playwright install android'\" thrown in microsoft/playwright.","triggerScenarios":"Thrown at packages/playwright-core/src/server/android/android.ts:191 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c8fc3bf8d31542d59b4d4d9eaab1df93ff541dc6","analyzedAt":"2026-08-12T07:26:36.950Z","schemaVersion":2},"datasetVersion":"2026-08-12T13:17:24.610Z"}