AndroidStudio apk安装失败总结

失败

  • 1. INSTALL_FAILED_DUPLICATE_PERMISSION
    • 1.1 具体信息
    • 1.2 原因分析
    • 1.3 解决方法
  • 2. INSTALL_FAILED_USER_RESTRICTED
    • 2.1 具体信息
    • 2.2 原因分析
  • 3. INSTALL_FAILED_ABORTED
    • 3.1 具体信息
    • 3.2 原因分析

1. INSTALL_FAILED_DUPLICATE_PERMISSION

1.1 具体信息

04/28 13:57:35: Launching 'app' on Xiaomi MI 9.
Installation did not succeed.
The application could not be installed: INSTALL_FAILED_DUPLICATE_PERMISSION
Installation failed due to: 'null'
Retry

1.2 原因分析

DUPLICATE PERMISSION 翻译为中文为 重复权限 ,并且重复的权限一定不是Android
系统的权限,而是 自定义权限,因为Android系统的权限是可以重复申明的。

这种错误只会在拥有相同权限且签名文件不同的情况出现,假设A、B两个项目都用是默认的debug.keystore签名文件,那个两个项目都可以在同一手机运行,如果C项目用了其它的xxx.jks签名文件,在安装了A或B的情况下无法安装C,同理如果先安装了C,那个A、B的任意一个都不可能被安装。

1.3 解决方法

  • 找到重复权限,进行权限调整

打开AndroidStudio右下角 Event Log 窗口可以看到具体报错信息如下:

Failed to commit install session 1359626299 with command cmd package install-commit 1359626299. Error: INSTALL_FAILED_DUPLICATE_PERMISSION: Package 当前应用包名 attempting to redeclare permission 重复权限 already owned by 已安装的存在此权限的包名

  • 找不到重复权限,试着把app的debug配置也设成签名包,将如下代码配置在build.gradle中的android节点下
    /**
     * release和debug都使用app.jks签名文件
     */
    signingConfigs {
        release {
            //加载资源
            Properties properties = new Properties()
            InputStream inputStream = project.rootProject.file('local.properties').newDataInputStream()
            properties.load(inputStream)

            //读取文件
            def sdkDir = properties.getProperty('key.file')

            //读取字段
            def key_keyAlias = properties.getProperty('keyAlias')
            def key_keyPassword = properties.getProperty('keyPassword')
            def key_storePassword = properties.getProperty('storePassword')

            keyAlias key_keyAlias
            keyPassword key_keyPassword
            storeFile file(sdkDir)
            storePassword key_storePassword
        }

        debug {//需要debug签名 否则debug模式微博分享提示签名不一致
            //加载资源
            Properties properties = new Properties()
            InputStream inputStream = project.rootProject.file('local.properties').newDataInputStream()
            properties.load(inputStream)

            //读取文件
            def sdkDir = properties.getProperty('key.file')

            //读取字段
            def key_keyAlias = properties.getProperty('keyAlias')
            def key_keyPassword = properties.getProperty('keyPassword')
            def key_storePassword = properties.getProperty('storePassword')

            keyAlias key_keyAlias
            keyPassword key_keyPassword
            storeFile file(sdkDir)
            storePassword key_storePassword
        }
    }


    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
        debug {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.debug
        }
    }

然后将签名包的路径、密码、别名、别名密码配置在 local.properties 对应的key中

key.file=签名包的路径
keyAlias=别名
keyPassword=别名密码
storePassword=签名包密码

2. INSTALL_FAILED_USER_RESTRICTED

2.1 具体信息

Installation did not succeed.
The application could not be installed: INSTALL_FAILED_USER_RESTRICTED

List of apks:
[0] '全路径/xxxx.apk'
Installation via USB is disabled.
Retry

2.2 原因分析

这种情况只在首次安装被拒绝后提示,并且在之后的覆盖安装都不会再有弹窗提示。

RESTRICTED: 受限制的

大意就是用户在安装apk时选择了拒绝,可能是没有注意手机的提示,等待时间结束认为是拒绝而安装失败,也可能是你真的点了拒绝。

3. INSTALL_FAILED_ABORTED

3.1 具体信息

Installation did not succeed.
The application could not be installed: INSTALL_FAILED_ABORTED

List of apks:
[0]  '全路径/xxxx.apk'
Installation failed due to: 'null'
Retry

3.2 原因分析

这种情况在每次安装都会弹出继续安装的提示,当你选择取消后出现此错误。

ABORTED: 中止

大意就是安装被中止而失败。

你可能感兴趣的:(AndroidStudio apk安装失败总结)