Android安装失败(应用未安装,该软件包似乎已损坏)

####一、描述 最近调试一个第三方SDK,代码改动也挺大,这两天准备发个版本的时候,打包出来的APK想覆盖线上版本的试试,覆盖安装的时候居然提示下图所示,该软件包似乎已损坏,这让我看的一脸懵逼,什么原因也没说。

####二、解决

#####原因: 因为接入第三方SDK的时候,因需求调整了build.gradle文件下的targetSdkVersion版本,线上版本的targetSdkVersion是24,如今被我改成22了,所以低版本的targetSdkVersion是无法覆盖安装高版本的targetSdkVersion的。

#####解决方法:

把当前项目的targetSdkVersion版本调整成跟线上版本一样,或者高于线上的,不然覆盖安装是会报错的。

targetSdkVersion 24
复制代码

####三、解决流程

上面已经公布问题的原因和解决方案,具体的解决问题流程有兴趣的往下面看

(1)刚发现问题的时候,怀疑网络不好的原因导致QQ传输到手机上的APK不完整,所以损坏了,但是测试后排除了这个问题

(2)之后就根据提示的关键字搜百度,谷歌了,大部分的答案都需要我在打包的时候勾选以下的V1 和 V2,但是我的这两个选项是灰色的,我的gradle版本比较低是2.2.3的,百度上说要在2.3.3以上才可以勾选,因为项目库的原因,调整gradle后影响太大,这个方案也不采纳了。

(3) 之后想七想八的方法都试了一遍,都没什么效果,只能乖乖的还是拿着关键字去查百度,后面看到一篇文章里有用到命令去安装Apk,一下子就想起来了,可以用命令安装啊,它是会报错误信息的,果断就用命令去重装了一下apk,报了以下的错误

>>adb install -r 231.apk 

Failed to install 231.apk: Failure [-26: Package com.example.test new target SDK 22 doesn't support runtime permissions but the old target SDK 24 does.]
复制代码

一看命令就想到了,target版本的问题了,之前修改过这个版本,再去master分支上看下线上的版本是多少,果然当前版本比线上版本低了,八成是这个原因了,所以马上把targetSdkVersion改成跟线上的版本一样后,打包覆盖安装就成功了,这么简单的问题找了那么久也是醉了。

也顺便找到一个跟我这个一样问题的小伙伴发的文章targetSdkVersion 更改的问题,这文章标题起的,能起的明显点吗,我查找问题根本不会找到这种文章。。

####四、总结

平时有遇到的Bug问题,希望大家都能一起分享出来.

转载于:https://juejin.im/post/5b3ac776e51d4555a6547521

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值