安卓14无法安装应用解决历程

客户手机基本情况:

安卓14,对应的 targetSdkVersion 34

前天遇到了安卓14适配问题,客户发来的截图是这样的

描述:无法安装我们公司的B应用。

型号:三星+google美版

解决步骤:

1、寻找其他安卓14手机测试。

同事安卓14的手机,可以安装上,只是有提示

所以,初步判定是谷歌系统问题。

2、target修改位34,请客户安装。

依然安装不上,同事的手机依然有可以安装,有提示。

查询到另外一种安装方式,但是,对于客户,肯定不合适,

adb install --bypass-low-target-sdk-block xxx.apk

3、手机设置方向尝试解决。

(1)清除数据和缓存

(2)兼容的设置

都不行

(3)接下来继续做程序方向的改造

4、尝试compile修改和一个相关库项目

我查询compile 的版本和target的关系,意思是最好一致,于是我修改为一致的,项目的库项目有2个,我修改了1个功能相关的库项目的target和compile版本

再次尝试,用户依然无法安装。

5、请教

给了我2个提示,

A、一个是32位和64的问题,我得去分析。

B、安卓14,虽然有得可以安装,但是,调试是不行的,所以,找真机测试,可以看到更详细的报错信息

6、去掉32位的限制,安卓14真机调试。

用户可以安装了。他的三星手机无法使用32位的应用,所以,无法安装;我同事的手机是可以支持的。

7、可以安装,但是【输完验证码 闪退】-okhttp版本需要适配安卓14,

于是继续真机调试

是okhttp3的版本需要适配target34,由3.11.0修改为4.8.1

复制代码
//    implementation 'com.squareup.okhttp3:okhttp:3.11.0'
    implementation 'com.squareup.okhttp3:okhttp:4.8.1'

8、同事手机可以运行,客户手机依然奔溃。-尝试卸载旧的再安装,也不行。

怀疑缓存问题,让客户卸载后,再次安装也不行。

9、另外一个库项目里,引入有一个小的报错,com.android.support 需要变成androidX

复制代码
com.android.support 报错,按理来说需要修改为androidX

android stadio 自带的攻击可以支持,但是,要求tools版本有要求

这个版本,在项目根目录的的build.gradle里可以查看

很明显,我的不符合要求

10、升级com.android.tools.build:gradle 为3.20,对应gradle-wrapper.也需要升级

但是,提醒,gradle-wrapper.properties 需要变为4.6,

于是这个配置也升级,但是自动变为

复制代码
gradle-4.6-bin

无法更新下来

手动下载也打不开网络

于是,我又手动修改为gradle-4.6-all,发现可以手动下载

于是,工程里修改升级

复制代码
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
复制代码

更新后,提示kotlin_version 版本太低,继续修改

复制代码
ext.kotlin_version = '1.1.51'

修改为1.2.51

11、升级完成,但是,无法启动运行

做了以下尝试

1、libpulltorefresh工程的target我也改为34,上午没有改动;
2、libpulltorefresh 工程的 com.android.support:appcompat 引入,由compile修改为implementation

12、还是无法启动, 于是计划回退到步骤8。

把tools的版本退重新回退到3.0.1,一直构建不了。(20分钟以上)

13、备份程序也无法启动。(5分钟)

因为客户来了,只能告知客户一时解决不了,让他先附近转转,而为有点焦虑。

14、强制退出android stadio

15、再次启动android stadio,打开项目。

我去上了一下厕所,再次回来,项目竟然初始化好了。可以运行了

这里说明,心态要好,耐心等待

结果:

客户的手机,竟然可以安装了。

总结:

主要是步骤8的那个版本起作用。

步骤11无法判断是否起了作用

9,10步骤最终回退了。

后续需要完善的内容:

1、欢迎页面把模拟器部分注释掉了;正式上线需要放开。
2、Minifest里面,启动类加了export=true;上线前应该修改为false;否则安全过不去;
3、存储读取变更,设备报修读取相册申请权限部分修改;改为原生代码;
4、工单附件下载在安卓14不适配,需要修改

相关推荐
千里马学框架15 小时前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台15 小时前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone16 小时前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
致远ccc16 小时前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
ttyyttemo18 小时前
Kotlin 协程中的 Job 结构化并发与取消
android
sun00770018 小时前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android
其实防守也摸鱼19 小时前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
AFinalStone20 小时前
Android7 SystemUI 源码解析(四)NavigationBar 导航栏与 SystemBars
android·systemui
JMchen20 小时前
属性动画原理与高级动画实现
android·kotlin·canvas
AFinalStone20 小时前
Android7 SystemUI 源码解析(二)启动流程深度解析
android·systemui