UNPKG

mobile-cli-lib

Version:
267 lines (266 loc) 12.9 kB
"use strict"; var os_1 = require("os"); var AndroidDebugBridgeResultHandler = (function () { function AndroidDebugBridgeResultHandler($logger, $errors) { this.$logger = $logger; this.$errors = $errors; } AndroidDebugBridgeResultHandler.prototype.checkForErrors = function (adbResult) { var errors = []; if (adbResult) { if (_.isArray(adbResult)) { _.each(AndroidDebugBridgeResultHandler.ANDROID_DEBUG_BRIDGE_ERRORS, function (error) { if (_.indexOf(adbResult, error.name) >= 0) { errors.push(error); } }); } else { _.each(AndroidDebugBridgeResultHandler.ANDROID_DEBUG_BRIDGE_ERRORS, function (error) { if ((adbResult.stdout && adbResult.stdout.indexOf(error.name) >= 0) || (adbResult.stderr && adbResult.stderr.indexOf(error.name) >= 0)) { errors.push(error); } }); } } return errors; }; AndroidDebugBridgeResultHandler.prototype.handleErrors = function (errors, treatErrorsAsWarnings) { var _this = this; _.each(errors, function (error) { _this.$logger.trace("Error name: " + error.name + " result code: " + error.resultCode); }); var errorMessages = _(errors).map(function (error) { return error.description; }) .join(os_1.EOL) .toString(); if (treatErrorsAsWarnings) { this.$logger.warn(errorMessages); } else { this.$errors.failWithoutHelp(errorMessages); } }; AndroidDebugBridgeResultHandler.ANDROID_DEBUG_BRIDGE_ERRORS = [ { name: "INSTALL_FAILED_ALREADY_EXISTS", description: "The package is already installed.", resultCode: -1 }, { name: "INSTALL_FAILED_INVALID_APK", description: "The package archive file is invalid.", resultCode: -2 }, { name: "INSTALL_FAILED_INVALID_URI", description: "The URI passed in is invalid.", resultCode: -3 }, { name: "INSTALL_FAILED_INSUFFICIENT_STORAGE", description: "The package manager service found that the device didn't have enough storage space to install the app.", resultCode: -4 }, { name: "INSTALL_FAILED_DUPLICATE_PACKAGE", description: "A package is already installed with the same name.", resultCode: -5 }, { name: "INSTALL_FAILED_NO_SHARED_USER", description: "The requested shared user does not exist.", resultCode: -6 }, { name: "INSTALL_FAILED_UPDATE_INCOMPATIBLE", description: "A previously installed package of the same name has a different signature than the new package (and the old package's data was not removed).", resultCode: -7 }, { name: "INSTALL_FAILED_SHARED_USER_INCOMPATIBLE", description: "The new package is requested a shared user which is already installed on the device and does not have matching signature.", resultCode: -8 }, { name: "INSTALL_FAILED_MISSING_SHARED_LIBRARY", description: "The new package uses a shared library that is not available.", resultCode: -9 }, { name: "INSTALL_FAILED_REPLACE_COULDNT_DELETE", description: "The new package uses a shared library that is not available.", resultCode: -10 }, { name: "INSTALL_FAILED_DEXOPT", description: "The new package failed while optimizing and validating its dex files, either because there was not enough storage or the validation failed.", resultCode: -11 }, { name: "INSTALL_FAILED_OLDER_SDK", description: "The new package failed because the current SDK version is older than that required by the package.", resultCode: -12 }, { name: "INSTALL_FAILED_CONFLICTING_PROVIDER", description: "The new package failed because it contains a content provider with the same authority as a provider already installed in the system.", resultCode: -13 }, { name: "INSTALL_FAILED_NEWER_SDK", description: "The new package failed because the current SDK version is newer than that required by the package.", resultCode: -14 }, { name: "INSTALL_FAILED_TEST_ONLY", description: "The new package failed because it has specified that it is a test-only package and the caller has not supplied the #INSTALL_ALLOW_TEST flag.", resultCode: -15 }, { name: "INSTALL_FAILED_CPU_ABI_INCOMPATIBLE", description: "The package being installed contains native code, but none that is compatible with the device's CPU_ABI.", resultCode: -16 }, { name: "INSTALL_FAILED_MISSING_FEATURE", description: "The new package uses a feature that is not available.", resultCode: -17 }, { name: "INSTALL_FAILED_CONTAINER_ERROR", description: "A secure container mount point couldn't be accessed on external media.", resultCode: -18 }, { name: "INSTALL_FAILED_INVALID_INSTALL_LOCATION", description: "The new package couldn't be installed in the specified install location.", resultCode: -19 }, { name: "INSTALL_FAILED_MEDIA_UNAVAILABLE", description: "The new package couldn't be installed in the specified install location because the media is not available.", resultCode: -20 }, { name: "INSTALL_FAILED_VERIFICATION_TIMEOUT", description: "The new package couldn't be installed because the verification timed out.", resultCode: -21 }, { name: "INSTALL_FAILED_VERIFICATION_FAILURE", description: "The new package couldn't be installed because the verification did not succeed.", resultCode: -22 }, { name: "INSTALL_FAILED_PACKAGE_CHANGED", description: "The package changed from what the calling program expected.", resultCode: -23 }, { name: "INSTALL_FAILED_UID_CHANGED", description: "The new package is assigned a different UID than it previously held.", resultCode: -24 }, { name: "INSTALL_FAILED_VERSION_DOWNGRADE", description: "The new package has an older version code than the currently installed package.", resultCode: -25 }, { name: "INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE", description: "The new package has target SDK low enough to not support runtime permissions.", resultCode: -26 }, { name: "INSTALL_PARSE_FAILED_NOT_APK", description: "The parser was given a path that is not a file, or does not end with the expected '.apk' extension.", resultCode: -100 }, { name: "INSTALL_PARSE_FAILED_BAD_MANIFEST", description: "The parser was unable to retrieve the AndroidManifest.xml file.", resultCode: -101 }, { name: "INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION", description: "The parser encountered an unexpected exception.", resultCode: -102 }, { name: "INSTALL_PARSE_FAILED_NO_CERTIFICATES", description: "The parser did not find any certificates in the .apk.", resultCode: -103 }, { name: "INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES", description: "The parser found inconsistent certificates on the files in the .apk.", resultCode: -104 }, { name: "INSTALL_PARSE_FAILED_CERTIFICATE_ENCODING", description: "the parser encountered a CertificateEncodingException in one of the files in the .apk.", resultCode: -105 }, { name: "INSTALL_PARSE_FAILED_BAD_PACKAGE_NAME", description: "The parser encountered a bad or missing package name in the manifest.", resultCode: -106 }, { name: "INSTALL_PARSE_FAILED_BAD_SHARED_USER_ID", description: "The parser encountered a bad shared user id name in the manifest.", resultCode: -107 }, { name: "INSTALL_PARSE_FAILED_MANIFEST_MALFORMED", description: "The parser encountered some structural problem in the manifest.", resultCode: -108 }, { name: "INSTALL_PARSE_FAILED_MANIFEST_EMPTY", description: "The parser did not find any actionable tags (instrumentation or application) in the manifest.", resultCode: -109 }, { name: "INSTALL_FAILED_INTERNAL_ERROR", description: "The system failed to install the package because of system issues.", resultCode: -110 }, { name: "INSTALL_FAILED_USER_RESTRICTED", description: "The system failed to install the package because the user is restricted from installing apps.", resultCode: -111 }, { name: "INSTALL_FAILED_DUPLICATE_PERMISSION", description: "The system failed to install the package because it is attempting to define a permission that is already defined by some existing package.", resultCode: -112 }, { name: "INSTALL_FAILED_NO_MATCHING_ABIS", description: "The system failed to install the package because its packaged native code did not match any of the ABIs supported by the system.", resultCode: -113 }, { name: "NO_NATIVE_LIBRARIES ", description: "The package being processed did not contain any native code.", resultCode: -114 }, { name: "INSTALL_FAILED_ABORTED", description: "The instalation failed because it was aborted.", resultCode: -115 }, { name: "DELETE_FAILED_INTERNAL_ERROR", description: "The system failed to delete the package for an unspecified reason.", resultCode: -1 }, { name: "DELETE_FAILED_DEVICE_POLICY_MANAGER", description: "The system failed to delete the package because it is the active DevicePolicy manager.", resultCode: -2 }, { name: "DELETE_FAILED_USER_RESTRICTED", description: "The system failed to delete the package since the user is restricted.", resultCode: -3 }, { name: "DELETE_FAILED_OWNER_BLOCKED", description: "The system failed to delete the package because a profile or device owner has marked the package as uninstallable.", resultCode: -4 }, { name: "DELETE_FAILED_ABORTED", description: "The delete failed because it was aborted.", resultCode: -5 }, { name: "MOVE_FAILED_INSUFFICIENT_STORAGE", description: "The package hasn't been successfully moved by the system because of insufficient memory on specified media.", resultCode: -1 }, { name: "MOVE_FAILED_DOESNT_EXIST", description: "The specified package doesn't exist.", resultCode: -2 }, { name: "MOVE_FAILED_SYSTEM_PACKAGE", description: "The specified package cannot be moved since its a system package.", resultCode: -3 }, { name: "MOVE_FAILED_FORWARD_LOCKED", description: "The specified package cannot be moved since its forward locked.", resultCode: -4 }, { name: "MOVE_FAILED_INVALID_LOCATION", description: "The specified package cannot be moved to the specified location.", resultCode: -5 }, { name: "MOVE_FAILED_INTERNAL_ERROR", description: "The specified package cannot be moved to the specified location.", resultCode: -6 }, { name: "MOVE_FAILED_OPERATION_PENDING", description: "The specified package already has an operation pending in the PackageHandler queue.", resultCode: -7 } ]; return AndroidDebugBridgeResultHandler; }()); exports.AndroidDebugBridgeResultHandler = AndroidDebugBridgeResultHandler; $injector.register("androidDebugBridgeResultHandler", AndroidDebugBridgeResultHandler);