博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android安装失败(应用未安装,该软件包似乎已损坏)
阅读量:5876 次
发布时间:2019-06-19

本文共 1182 字,大约阅读时间需要 3 分钟。

####一、描述 最近调试一个第三方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改成跟线上的版本一样后,打包覆盖安装就成功了,这么简单的问题找了那么久也是醉了。

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

####四、总结

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

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

你可能感兴趣的文章
day08-文件操作
查看>>
教学-45 对象的相等
查看>>
贪食蛇
查看>>
关于Spring 中的事务
查看>>
为什么现在都用面向对象开发,为什么现在都用分层开发结构?
查看>>
【离散数学】 SDUT OJ 偏序关系
查看>>
写给学弟学妹的产品入门建议(持续更新)
查看>>
view视图总结
查看>>
深入剖析tomcat之一个简单的web服务器
查看>>
记一次数据库查询语句的优化
查看>>
poj2365
查看>>
SQL学习笔记三select语句的各种形式
查看>>
Android cts all pass 全攻略
查看>>
数学 SCU 4436 Easy Math
查看>>
Django form组件
查看>>
1006 等差数列
查看>>
SelectMethod=cursor
查看>>
url路由配置及渲染方式
查看>>
MySQL修改root密码的各种方法整理
查看>>
Json/XML序列化和反序列化
查看>>