android 9安装教程,android 9.x 实现应用内更新安装

2023-11-06

折腾了3天,总算解决了问题。

依赖如下

implementation 'androidx.core:core:1.0.2'

// implementation 'com.android.support:support-compat:28.0.0'

support包,试了几个版本总是提示一堆

Duplicate class android.support.v4. ……

切换到依赖 androidx,则不能忘记在 androidManifest.xml中替换 name值

android:theme="@style/AppTheme"

android:networkSecurityConfig="@xml/network_security_config"

>

android:name="androidx.core.content.FileProvider"

android:exported="false"

android:grantUriPermissions="true" >

android:name="android.support.FILE_PROVIDER_PATHS"

android:resource="@xml/filepath" />

工具类如下

public static voidinstallApk(Activity activity, File apkFile){

Intent intent=newIntent();

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//Uri uri = Uri.fromFile(apkFile);

Uri uri = null;//todo N FileProvider

//todo O install permission

if(Build.VERSION.SDK_INT >=Build.VERSION_CODES.N){

uri= androidx.core.content.FileProvider.getUriForFile(activity,activity.getPackageName()+".fileprovider", apkFile);

intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);

}else{

uri=Uri.fromFile(apkFile);

}

intent.setDataAndType(uri,"application/vnd.android.package-archive");

activity.startActivity(intent);

}

另外为了单纯一点,避免错误提示

Duplicate class android.support.v4.app.INotificationSideChannel found in modules classes.jar (androidx.core:core:1.0.2) and classes.jar (com.android.support:support-compat:25.3.1)

Duplicate class android.support.v4.app.INotificationSideChannel$Stub foundin modules classes.jar (androidx.core:core:1.0.2) and classes.jar (com.android.support:support-compat:25.3.1)

Duplicate class android.support.v4.app.INotificationSideChannel$Stub$Proxy foundin modules classes.jar (androidx.core:core:1.0.2) and classes.jar (com.android.support:support-compat:25.3.1)

Duplicate class android.support.v4.os.IResultReceiver foundin modules classes.jar (androidx.core:core:1.0.2) and classes.jar (com.android.support:support-compat:25.3.1)

Duplicate class android.support.v4.os.IResultReceiver$Stub foundin modules classes.jar (androidx.core:core:1.0.2) and classes.jar (com.android.support:support-compat:25.3.1)

Duplicate class android.support.v4.os.IResultReceiver$Stub$Proxy foundin modules classes.jar (androidx.core:core:1.0.2) and classes.jar (com.android.support:support-compat:25.3.1)

Duplicate class android.support.v4.os.ResultReceiver foundin modules classes.jar (androidx.core:core:1.0.2) and classes.jar (com.android.support:support-compat:25.3.1)

Duplicate class android.support.v4.os.ResultReceiver$1 found in modules classes.jar (androidx.core:core:1.0.2) and classes.jar (com.android.support:support-compat:25.3.1)

Duplicate class android.support.v4.os.ResultReceiver$MyResultReceiver foundin modules classes.jar (androidx.core:core:1.0.2) and classes.jar (com.android.support:support-compat:25.3.1)

Duplicate class android.support.v4.os.ResultReceiver$MyRunnable foundin modules classes.jar (androidx.core:core:1.0.2) and classes.jar (com.android.support:support-compat:25.3.1)

Go to the documentation to learn how to Fix dependency resolution errors.

解决办法为,在gradle.properties中添加如下代码

android.useAndroidX=trueandroid.enableJetifier=true

最后贴一下 androidManifest.xml中提到的2个xml文件,在res/xml文件夹下

network_security_config.xml

filepath.xml

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android 9安装教程,android 9.x 实现应用内更新安装 的相关文章

  • 学会搭建小程序生鲜商城,开启生鲜电商新模式

    电商平台的出现 为人们带来了极大的便利 然而 传统的电商平台已经不能满足消费者对于购物体验的要求 如今 小程序生鲜商城因其轻量化 高效率等特点 成为了众多卖家的首选 本文将介绍如何学会搭建小程序生鲜商城 并以一个实际案例作为例子 解析运用技
  • python控制台输入、输出

    python控制台输入 输出 上一篇文章 python 注释 变量 类型 下一篇文章 Python运算符 比较 逻辑运算符 1 输出 简单输出 print 我是简单的字符串输出 控制台运行结果 我是简单的字符串输出 格式化输出 age 18
  • jenkins shell脚本执行权限不够解决办法

    自己服务器搭建jenkins执行操作的时候 没有相应的权限 解决这个问题的时候 做了一些笔记分享给大家 1 查看jenkins默认用户 vi etc sysconfig jenkins 复制代码 找到JENKINS USER发现默认用户je
  • JDBC入门

    JDBC基础部分 问题一 JDBC是什么 为什么会存在JDBC 作用是什么 JDBC Java DataBase Connection 是用于跟数据库进行交互的 由JDK统一提供 可以为多种关系型数据库提供统一的标准 但是是各大厂商进行实例
  • 亚信科技AntDB数据库携“U8C+AntDB联合产品”亮相“2023全球商业创新大会”,开启生态合作新篇章

    8月18 19日 近万人齐聚上海国家会展中心 带着对数字化 数智化趋势和热点的关注 以满腹热情投身到以 数据驱动 智能运营 为主题的 2023全球商业创新大会 共商新技术条件下企业信息化出现的新课题 新挑战 共享数智化升级创新成果 亚信科技
  • 【Python】TXT文本文件转换成JSON格式

    主要分为两个部分 1 txtToJson 函数读取指定路径下的所有文件 转换成如下格式 name1 content1 name2 content2 2 saveInJsonFile 函数将处理好的json格式数据和保存的文件路径作为函数参数
  • Android数据加密之MD5加密

    一 前言 项目中无论是密码的存储或者说判断文件是否是同一文件 都会用到MD5算法 今天来总结一下MD5加密算法 二 什么是MD5加密 MD5英文全称 Message Digest Algorithm 5 翻译过来是 消息摘要算法5 由MD2
  • c语言结构体变量所占字节计算,【C语言】结构体占用字节数及存储与空间分配...

    我们都知道在数据类型中 char类型占1个字节 short占2个字节 int占4个字节 long占8个字节等等 在计算结构体大小时需要考虑其内存布局 结构体在内存中存放是按单元存放的 每个单元多大取决于结构体中最大基本类型的大小 下面我们看
  • 网络工程师常用的命令整理-windows版,还不快收藏起来

    一 ping命令 1 ping ping是最常用的实用程序之一 用来确定网络的连通性 ping是个使用频率极高的实用程序 主要用于确定网络的连通性pi 如果ping通一个地址 那么基本可以排除物理层数据链路层的故障等 ping 的命令格式通
  • 使用联机搜索求解Wumpus World

    使用 JavaScript 重写的算法网页 https yuqingxiong github io Wumpus World Problem github仓库地址 https github com YuqingXiong Wumpus Wo
  • CUDA 分块矩阵乘法

    cpp文件 include stdafx h include
  • mips使用buildroot,交叉静态编译file程序出现ld: cannot find -lz错误解决过程

    最近用unbutu X64 版本16 04 使用buildroot 版本2020 2 交叉编译一个mips的目标机 因为目标机没有支持库所以很多程序使用静态编译 这次的主角是file这个程序 运行该程序能知道各类文件的类型及追踪需要的支持库
  • Verilog实现异步FIFO(重难点)

    FIFO总概 图来自文章Simulation and Synthesis Techniques for Asynchronous FIFO Design 一个异步FIFO一共由五个基本模块组成 分别是 RAM存储器模块 FIFO写地址以及写
  • 分享一个基于springboot+vue的职业生涯规划系统源码

    作者 计算机源码社 个人简介 本人七年开发经验 擅长Java Python PHP NET 微信小程序 爬虫 大数据等 大家有这一块的问题可以一起交流 学习资料 程序开发 技术解答 文档报告 JavaWeb项目 微信小程序项目 Python
  • tp摄像头的默认地址_TP-Link路由器默认管理员密码是什么 路由器默认管理员密码介绍【详解】...

    TP Link路由器默认管理员密码是多少 最近有网友咨询了小编这样的问题 其实关于TP Link路由器的默认管理员密码是要根据路由器的型号而介绍的 因为有些型号的TP Link路由器是有默认管理员用户名和密码的 而有些型号是没有的 这对这个
  • Flutter 容器(5) - SizedBoxSizedBox

    SizedBox 两种用法 一是可用来设置两个widget之间的间距 二是可以用来限制子组件的大小 import package flutter material dart class AuthList extends StatelessW
  • squid 用户通过NCSA认证

    Squid的用户认证设置 默认时 Squid本身不带任何认证程序 但是可以通过外部认证程序来实现用户认证 一般有以下的认证程序 LDAP认证 SMB认证 基于mysql的认证 基于sock5的密码认证和基于Radius的认证 下面介绍常用的
  • STM32设置为I2C从机

    硬件平台 STM32F401 编辑器 keil 5 18 操作系统 win7 一 I2C协议 在传输数据的时候 SDA线必须在时钟的高电平周期保持稳定 SDA的高或低电平状态只有在SCL 线的时钟信号是低电平时才能改变 起始和停止条件 SC
  • JavaScript的三大组成

    文章目录 一 JavaScript三大组成 1 ECMAScript 2 DOM 3 BOM 总结 一 JavaScript三大组成 JavaScript的三个部分为 ECMAScript JavaScript语法规范 是JS的基础也是核心

随机推荐

  • SpringBoot打包jar包并后台运行

    最近又进步了 我一直习惯直接在Intellij Idea中直接运行写好的程序 不过也是因为仅仅是写个模拟接口而已 后来到新公司要负责java后台 开始习惯把项目部署到外部Tomcat去测试 或者打成war包让运维去linux上面部署 不过
  • 基于OpenCV的视频道路车道检测

    基于OpenCV的视频道路车道检测 基于OpenCV的视频道路车道检测 前言 综述 运行方法 车道检测的实现 路面图像二值化 基于透视变换提取车道区域 基于二次多项式拟合车道线 计算曲率半径与车辆的偏移距离 用车道区域标注原始图像 总结 E
  • 网站服务器评测,9.2分! 浪潮服务器受到海外权威专业评测网站肯定

    目前 浪潮服务器业务覆盖全球120个国家和地区 拥有8个全球研发中心 6个全球生产中心以及2个全球服务中心 海外权威服务器专业评测网站ServeTheHome 简称STH 曾对浪潮NE5260M5边缘服务器进行测评 该服务器斩获9 2的高分
  • threejs实现一个固定大小的3d标点

    需求背景 需要在3d模型上实现标注的功能 一开始是直接通过添加一个普通的mesh来实现的 但是这样就会有一个问题 当视图缩放的时候 标注也会跟着一起放大缩小 影响视觉效果 因此需要实现一个不会随着视图一起放大或者缩小的mesh 实现思路 明
  • MongoDB update数据语法

    mongodb更新有两个命令 1 update 命令 db collection update criteria objNew upsert multi criteria update的查询条件 类似sql update查询内where后面
  • Qt自定义窗口部件/控件(实现一个十六进制微调框SpinBox)

    目录 1 自定义Qt窗口部件 控件 2 十六进制微调框 SpinBox 2 1 实现思路 2 2 源码 3 使用方法 3 1 代码添加自定义窗口部件 控件 3 2 Qt设计师添加自定义窗口部件 控件 3 3 运行效果 4 缺点 1 自定义Q
  • tomcat线程池配置

    以Tomcat8为例 配置方式一
  • dependency-check-maven安全漏洞扫描工具介绍

    目录 dependency check maven安全漏洞扫描工具介绍 dependency check maven插件 重点参数解析 运行命令 检查单个maven工程安全漏洞 检查多个maven子工程汇总一个报告 命令行方式运行 扫描报告
  • 压缩感知(Compressed sensing)from wiki

    压缩感知 Compressed sensing 也被称为压缩采样 Compressive sampling 或稀疏采样 Sparse sampling 是一种寻找欠定线性系统的稀疏解的技术 压缩感知被应用于电子工程尤其是信号处理中 用于获取
  • Java继承和多态之接口

    Java继承和多态之接口 题目要求 仔细阅读右侧编辑区内给出的代码框架及注释 在 Begin End 中实现两个数的求和运算和比较 具体要求如下 编写程序 实现两个数的求和运算和比较 请在下面的Begin End之间按照注释中给出的提示编写
  • CVPR2021 视频目标检测——MM-DistillNet 基于多模态知识提取的自监督多目标检测与跟踪论文笔记/附原文和代码

    本文是CVPR2021最新的视频目标检测的论文 原文地址 https arxiv org abs 2103 01353v1 代码 https github com robot learning freiburg MM DistillNet
  • 028:vue上传解析excel文件,列表中输出内容

    第028个 查看专栏目录 VUE element UI 专栏目标 在vue和element UI联合技术栈的操控下 本专栏提供行之有效的源代码示例和信息点介绍 做到灵活运用 1 提供vue2的一些基本操作 安装 引用 模板使用 comput
  • python3 numpy详解

    基础操作 import numpy as np np创建数组 a np array 1 2 3 print a print type a a2 np array range 10 print a2 print type a2 numpy特有
  • DDoS攻击的三种类型

    如其名称所示 拒绝服务 DoS 攻击是为了使任何类型的服务无法访问 举例来说 关闭对外部在线资产如电子商务网站的访问构成拒绝服务 分布式拒绝服务 DDoS 的主要目的是防止服务被使用并被破坏 而不是试图破坏目标的安全范围 DDoS攻击针对服
  • Wix学习整理(6)——安装快捷方式

    一 为HelloWorld案例添加安装快捷方式 通常我们安装一个应用软件的时候 都喜欢在桌面或开始菜单中添加快捷方式以便我们快速访问 现在我们就在上篇添加注册信息的基础上为HelloWorld的安装包添加安装快捷方式 下面我们将以安装开始菜
  • SAP QM 执行事务代码QE01为检验批录入结果直接进入Multiple Specification标签页?

    SAP QM 执行事务代码QE01为检验批录入结果直接进入Multiple Specification标签页 1 检验批10000000509是采购订单收货后触发的检验批 执行事务代码QE01 为检验批10000000509录入检验结果 输
  • 【单片机毕业设计】【mcuclub-306】万年历电子时钟

    设计简介 项目名 基于单片机的万年历电子时钟的设计 基于单片机的多功能时钟的设计 基于单片机的数字时钟的设计 单片机 STC89C52 功能简介 1 通过DS1302实时获取时间 并掉电保存时间 2 通过DS18B20获取环境温度值 3 通
  • lodash的2个数组对象操作

    根据数组对象 下的属性名称 来返回相应 的值 数据格式如下 var data test1 test2 test3 test4 test5 var key test1 对象的每个属性名称不是相同的 对应的值 是一个数组 方法1 将data初始
  • C语言中的逻辑判断

    C语言中的逻辑判断 C语言中的逻辑判断是以真和假来表示的 0为假 一切非零为真 这里举几个例子 来让读者更加深入地了解判断语句 逻辑值 int a 5 int b 3 int c a gt b 我们来看c的结果 这时c 1 因为a gt b
  • android 9安装教程,android 9.x 实现应用内更新安装

    折腾了3天 总算解决了问题 依赖如下 implementation androidx core core 1 0 2 implementation com android support support compat 28 0 0 supp