关于代码中调用安装 apk 成功后首次打开 app 闪退的问题

27 篇文章 1 订阅
21 篇文章 0 订阅

记录一个唤起安装 apk 文件成功后打开 app 首次会闪退的问题。

现象:app 内更新版本,下载完 apk 后调起安装,系统安装完成后会自动打开 app ,这时候 app 会闪退,再次手动点开 app,则正常打开,且已更新到想要的版本。

看看这一部分的代码,如图是我改过之后的代码,圈起来的是出问题的部分:

原先的代码里 (2)处使用的是 

intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

这样写其实是不对的,但编译也不会报错,导致的问题就是我描述的那样,安装完成首次打开会闪退,改成正确的 addFlags() 就可以了。

另外 setFlags() 和 addFlags() 的先后顺序要写对,先 set 再 add 。如果顺序反过来的话,会出现错误:安装包解析异常。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
app自动化,自动更新安装apk包是一个常见的需求。通过自动更新安装apk包,可以方便地将新的版本推送给用户,提供更好的用户体验和功能进。 为了实现自动更新安装apk包,需要以下几个步骤: 1. 检测新版本:首先,需要在服务器端存储apk的最新版本,并提供一个接口供设备端检测更新。设备端可以定时或者在指定条件下向服务器发起请求,检测有无新版本。 2. 下载新版本:如果有新版本,设备端将apk文件下载到本地。可以使用HttpURLConnection等网络库实现下载功能。 3. 安装版本:下载完毕后,设备端需要对apk文件进行安装。可以通过调用系统提供的安装器进行安装,也可以使用第三方库如Dexposed实现静默安装功能。 需要注意的是,自动更新安装apk包需要用户授权。在安卓系统,需要获取WRITE_EXTERNAL_STORAGE和REQUEST_INSTALL_PACKAGES权限。 同时,为了保证用户的安全和隐私,自动更新安装apk包需要以下几点注意: 1. 权限控制:只有在用户明确同意的情况下,才能进行自动更新安装apk包,否则可能会引发安全问题。 2. 加密传输:在下载过程,需要使用HTTPS等加密传输,确保传输的数据不被恶意篡或窃取。 3. 完整性校验:下载完毕后,需要对下载的apk文件进行完整性校验,防止文件被间人攻击篡。 总之,通过自动更新安装apk包,可以方便地将新版本推送给用户,提供更好的用户体验。但在实现过程需要注意安全和隐私问题,确保用户的授权和数据的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高钙小新

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值