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

news2025/1/17 0:52:32

客户手机基本情况:

安卓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不适配,需要修改

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2214493.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从源码到平台:使用视频美颜SDK构建高性能直播美颜系统详解

本文将深入探讨如何从源码出发,借助视频美颜SDK构建一套高性能的直播美颜系统,涵盖技术架构、核心功能的实现以及性能优化等方面的详解。 一、视频美颜SDK的作用与选择 视频美颜SDK是开发直播美颜系统的基础,它能够提供实时美颜处理功能&am…

STM32的GPIO片上外设

一、STM32的片上外设 片上外设是集成在 MCU 芯片内部的硬件模块,它们通过片内总线与 CPU 直接通信,而不是通过外部引脚或接口连接的设备。 片上外设: 包括 UART、I2C、SPI、ADC、定时器、GPIO、DMA、RTC 等集成在 MCU 内部的模块。这些外设…

《Linux从小白到高手》综合应用篇:深入理解Linux磁盘及IO优化

1. 前言 其实磁盘优化和IO优化,我在前面的其他Linux调优博文中已经讲述过或者涉及过了,但是太过零碎,所以本篇就来集中深入讨论下Linux磁盘和IO调优。 2.磁盘调优 结合我多年的经验,本人认为磁盘调优最重要的是读写性能的提升和…

Unity 实战案例全解析 实现时间停止效果+世界变灰

画面里运动的那个小玩意这么写 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Partol : MonoBehaviour {public Transform pos1;public Transform pos2;public float speed;private Transform target;void Start() {target p…

SpringBoot智能推荐:健康生活新选择

3系统分析 3.1可行性分析 通过对本基于智能推荐的卫生健康系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本基于智能推荐的卫生健康系统采用SSM框架&#…

二叉查找树(Binary Search Tree)Java语言实现

一、二叉查找树 二叉查找树(Binary Search Tree),也称为二叉搜索树、有序二叉树(Ordered Binary Tree)或排序二叉树(Sorted Binary Tree)。 是指一棵空树或者具有下列性质的二叉树&#xff1a…

Unity DOTS中的Archetype与Chunk

Unity DOTS中的Archetype与Chunk 在Unity中,archetype(原型)用来表示一个world里具有相同component类型组合的entity。也就是说,相同component类型的entity在Unity内部会存储到一起,共享同一个archetype。 使用这样的设…

JAVA毕业设计191—基于Java+Springboot+vue的电子产品商城管理系统(源代码+数据库)

毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootvue的电子产品商城管理系统(源代码数据库)191 一、系统介绍 本项目前后端不分离,分为用户、管理员两种角色 1、用户: 注册、登录、商品…

C++在vscode中的code runner配置/环境配置

C在vscode中快捷运行(code runner) 一、配置tasks.json 在vscode中创建文件夹或打开文件夹,会发现文件夹下多了一个.vscode文件夹,在该文件夹下创建tasks.json文件,并添加一下内容 {"version": "2.0…

弘景光电:以创新为翼,翱翔光学科技新蓝海

在科技日新月异的今天,光学镜头及模组作为智能设备的核心组件,其重要性日益凸显。广东弘景光电科技股份有限公司(以下简称“弘景光电”)正是在这一领域中,凭借其卓越的研发实力和市场洞察力,即将在创业板上…

工具篇:(二)MacOS 下载 MySQL 并进行配置连接,使用 VSCode 创建 Node 项目-亲测有效

MacOS 下载 MySQL 并进行配置连接,使用 VSCode 创建 Node 项目 我们将介绍如何在 macOS 上下载和配置 MySQL 数据库,并使用 VSCode 创建一个 Node.js 项目进行测试。通过这些步骤,您将能够顺利地设置开发环境并进行基本的数据操作。 一、删…

【国际学术会议之都,IEEE出版】第四届计算机科学、电子信息工程和智能控制技术国际会议(CEI 2024,2024年11月8-10日)

第四届计算机科学、电子信息工程和智能控制技术国际会议(CEI 2024) 2024 4th International Conference on Computer Science, Electronic Information Engineering and Intelligent Control Technology 官方信息 会议官网:www.ic-cei.org …

AFSim仿真系统 --- 系统简解_10处理器 (Processors)

处理器 (Processors) 处理器提供了为特定平台定义行为的能力。 大多数处理器由用户使用 AFSIM 脚本语言定义。 以下是一些预定义的处理器类型: WSF_DIRECTION_FINDER_PROCESSORWSF_TRACK_PROCESSORWSF_MESSAGE_PROCESSORWSF_GUIDANCE_COMPUTERWSF_IMAGE_PROCESS…

Android11 USB Camera会出现预览绿屏问题

目录 一、问题描述 二、问题原因 三、解决方法 一、问题描述 DDR容量是4G及以上的机器,USB Camera会出现预览绿屏问题。 串口中会刷如下log: 二、问题原因 RGA2使用超过4G内存会异常,导致USB Camera调用rga相关操作报错,从而预览绿屏 三…

深度学习基础—神经风格迁移

1.什么是神经风格迁移 神经风格迁移就是将一张图片的风格迁移到另一张图片上,生成具有第一张图片风格的新的图片。新图片的主体还是第二张图片,但是风格是第一张图片的。 如下两组图片都是神经风格迁移的例子: 将绘画的风格迁移到真实建筑图片…

树型名称前面插入图片

需求&#xff1a; 搜索树、树型要显示连线&#xff0c;还有名称前带图片 ui组件&#xff1a;https://devui.design/components/zh-cn/overview 直接上代码 [checkable] false 表示取消复选框 <div class"p-sm"><div class"row"><d-sea…

软件开发----Java基础每日刷题(转载于牛客)

1. 对抽象类的描述正确的是() A 抽象类的方法都是抽象方法 B 一个类可以继承多个抽象类 C 抽象类不能有构造方法 D 抽象类不能被实例化 正确答案&#xff1a;D 解析&#xff1a; A.抽象类可以有非抽象的方法&#xff0c;而接口中的方…

Flythings学习(三)界面交互

文章目录 1 界面切换1.1 打开界面1.2 关闭界面 2 界面活动周期2.1 打开不存在页面的活动流程2.2 打开已存在界面&#xff08;被隐藏的界面&#xff09;2.3 关闭界面的流程 1 界面切换 界面切换的相关函数如下 1.1 打开界面 如果需要打开一个界面&#xff0c;在其他界面的控件…

WebSocket状态码及异常报错1006

文章目录 1.WebSocket协议简介2.WebSocket状态码的作用&#xff1a;3.WebSocket状态码1006详解1.问题原因2.解决方案 1.WebSocket协议简介 WebSocket协议是一种基于TCP的协议&#xff0c;它通过在浏览器和服务器之间建立一条持久的双向通信通道&#xff0c;实现了实时的数据传…

【论文阅读】SAM 2: 分割一切图像和视频

导言 继SAM模型发布以来&#xff0c;Meta公司于2024年8月发布第二个图像分割大模型SAM2。相较于第一代SAM模型&#xff0c;论文提出了第二代“分割任意物体模型” (SAM 2)&#xff0c;旨在解决视频中的可提示视觉分割任务&#xff08;Promptable Visual Segmentation, PVS&…