Android项目更新依赖和打包步骤和问题汇总

目录

  • 1、Android 项目打包,32位包升级到64位包
    • 问题一:ERROR: Conflicting configuration : 'armeabi-v7a,x86-64,arm64-v8a,x86' in ndk abiFilters cannot be present when splits abi filters are set : x86,armeabi-v7a,arm64-v8a
  • 2、Android项目依赖升级
    • **问题二:**
  • 3、升级依赖包的版本
    • 问题三、错误: 程序包junit.framework不存在
    • 问题四、(这个应该也是没升级到androidx前的问题)
  • 4、android集成支付宝sdk 更新
    • 问题五、ERROR: Manifest merger failed with multiple errors
    • 问题六、android alipay支付宝集成,提升到targetcompileversion 30 ,并且android.support提升到androidx,没有唤起 H5 页面,并且调用alipay接口paytask.payV2报错4000,系统繁忙请稍后再试

1、Android 项目打包,32位包升级到64位包

步骤一、
在app的build.gradle文件中添加如下代码

android {defaultConfig {ndk{abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86-64'}}
}

步骤二、
在控制台中输入gradle assembleRelease ,参照参考链接,目的应该是生成64位so库文件

gradle assembleRelease

在这里插入图片描述

步骤三、
在app的build.gradle文件中更新build.gradle文件中的配置

android {splits {abi {enable truereset()include 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86-64'universalApk false}}
}

步骤四、
详细请参考“参考链接”,因为我没有这个文件夹,我就跳过这个步骤了
在这里插入图片描述

步骤五、
Build --> Clean Project --> Rebuild Project

步骤六、
至此,有可能会报ndk什么错误,参考问题一,把步骤一的ndk那段代码注释了就好了,然后再执行打包就从32位包打成64位包了

问题一:ERROR: Conflicting configuration : ‘armeabi-v7a,x86-64,arm64-v8a,x86’ in ndk abiFilters cannot be present when splits abi filters are set : x86,armeabi-v7a,arm64-v8a

错误信息指出在 ndk { abiFilters } 和 splits { abi } 配置中存在冲突

参考:Android 64位包替换32位包

2、Android项目依赖升级

因为targetSdkVersion 要从26升级到30,就相应的对依赖进行了升级
之前的依赖是使用android.support,给升级到androidx了

targetSdkVersion 30
minSdkVersion 23
compileSdkVersion 30

升级步骤:
步骤一、
在这里插入图片描述
步骤二、(如果页面不一致,可参考问题二)
这边可以打包存一份自己原来的项目代码
在这里插入图片描述

**步骤三、**等待完成
在这里插入图片描述
步骤四、
在这里插入图片描述
**步骤五、**等待完成
在这里插入图片描述

完成之后,整个项目大改
原来的依赖从android.support升级为androidx

问题二:

因为我的project的build.gradle是3.0.1的需要升级,直接点ok就行
在这里插入图片描述
然后修改project的build.gradle的版本,会有提示修改为多少版本
在这里插入图片描述

修改完之后 sync now 一下
在这里插入图片描述

参考:Android源码中com.android.support依赖迁移到AndroidX库

3、升级依赖包的版本

在这里插入图片描述
举个例子:找到有波浪线的,下拉滚动条,会有相应的版本提示,
在这里插入图片描述

在这里插入图片描述

在这儿填写上刚刚的15.8.7版本号,点击ok就行
在这里插入图片描述

问题三、错误: 程序包junit.framework不存在

依赖需要改为(一般升级androidx的时候应该自己改了,这个应该是升级前的问题,记录一下)

implementation 'junit:junit:4.12' // 或者更高的版本

问题四、(这个应该也是没升级到androidx前的问题)

程序包junit.framework不存在
通常和依赖com.jakewharton:butterknife (该依赖为注解相关依赖)有关

需要改为

implementation 'com.jakewharton:butterknife:10.2.3'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3'

4、android集成支付宝sdk 更新

可参考官网android集成
步骤一、
删除原来的jar包
在这里插入图片描述
在这里插入图片描述

步骤二、
在app的build.gradle文件中,删除旧的jar依赖,加入新的依赖,然后sync now 一下
在这里插入图片描述
步骤三、
在project的build.gradle中新增,然后sync now一下

buildscript {repositories {mavenCentral()}
}

步骤四、
依赖升级完成有一个问题就是targetSdkVersion升级到30之后,详见官网demo的manifest.xml文件

<!-- 如果您的 App 的 targetSdkVersion 大于或等于 30,则需要在 AndroidManifest.xml 中提供下面的应用可见性声明,让支付宝 SDK 感知设备上是否已经安装了支付宝 App。同时,您可能还需要升级 Gradle Plugin 到最新版本。关于 Android 11"应用可见性" 机制,参见 https://developer.android.com/about/versions/11/privacy/package-visibility?hl=zh-cn --><queries><package android:name="com.eg.android.AlipayGphone" /> <!-- 支付宝 --><package android:name="hk.alipay.wallet" /> <!-- AlipayHK --></queries>

剩下的就按照官网的集成步骤修改就行,参照demo,因为我这边只是版本升级,原来的集成没动,可以参考:安卓支付宝支付功能的集成,全网最详细教程(2019年8更新)

问题五、ERROR: Manifest merger failed with multiple errors

如果想查看详细日志,在控制台输入以下代码

gradlew processDebugManifest -stacktrace

在这里插入图片描述
然后就有详细的问题解释了
在这里插入图片描述
说是什么在 元素上缺少 ‘package’ key 属性
解决办法:
就升级project的build.gradle中的gradle到3.5.4版本,
参考:Missing ‘package‘ key attribute on element package at [com.huawei.hms:dynamic-api:1.0.20.300] Androi

classpath 'com.android.tools.build:gradle:3.5.4'

问题六、android alipay支付宝集成,提升到targetcompileversion 30 ,并且android.support提升到androidx,没有唤起 H5 页面,并且调用alipay接口paytask.payV2报错4000,系统繁忙请稍后再试

在这里插入图片描述
在 com.alipay.sdk.app.H5PayActivity 和 com.alipay.sdk.app.H5AuthActivity 的 元素上的 ‘configChanges’ 属性存在冲突。

我就把以下注释了,然后h5页面就调出来了
在这里插入图片描述

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

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

相关文章

docker部署excalidraw画图工具(银角大王课堂使用的画图软件搭建)

环境搭建 安装docker&#xff08;不过多说&#xff0c;可以参照他人文档&#xff09; 安装docker-compose 运行以下命令以下载 Docker Compose 的当前稳定版本&#xff1a; sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose…

pytest-base-url插件之配置可选的项目系统URL

前言 ①当我们的自动化代码完成之后&#xff0c;通常期望可以在不同的环境进行测试&#xff0c;此时可以将项目系统的URL单独拿出来&#xff0c;并且可以通过pytest.ini配置文件和支持pytest命令行方式执行。 ② pytest-base-url 是一个简单的pytest插件&#xff0c;它通过命…

【数据结构】HashMap 和 HashSet

目录 1.哈希表概念 2冲突 2.1概念 2.2 冲突-避免 2.3冲突-避免-哈希函数设计 2.4 冲突-避免-负载因子调节 ​编辑 2.5 冲突-解决-开散列/哈希桶 2.5冲突严重时的解决办法 3.实现 4.性能分析 5.与Java集合类的关系 1.哈希表概念 在顺序结构中&#xff0c;元素关键码和存…

【vue+eltable】修改表格滚动条样式

<style lang"scss" scoped> ::v-deep .el-table__body-wrapper::-webkit-scrollbar {width: 10px; /*纵向滚动条的宽度*/height: 10px; /*横向滚动条的高度*/ } /*定义滚动条轨道 内阴影圆角*/ ::v-deep .el-table__body-wrapper::-webkit-scrollbar-track {bo…

Java 多线程之 volatile(可见性/重排序)

文章目录 一、概述二、使用方法三、测试程序3.1 验证可见性的示例3.2 验证指令重排序的示例 一、概述 在Java中&#xff0c;volatile 关键字用于修饰变量&#xff0c;其作用是确保多个线程之间对该变量的可见性和禁止指令重排序优化。 当一个变量被声明为volatile时&#xff0…

高德地图点击搜索触发输入提示

减少调用次数&#xff0c;不用每输入一次调用一次&#xff0c;输入完后再触发搜索 效果图&#xff1a; ![Alt](https://img-home.csdnimg.cn/images/20220524100510.png dom结构 <div class"seach"><van-searchshow-actionv-model"addressVal"…

【使用vscode在线web搭建开发环境--code-server搭建】

官方版本下载 https://github.com/coder/code-server/releases?q4.0.0&expandedtrue使用大于版本3.8.0,因为旧版本有插件市场不能访问的情况版本太高需要更新环境依赖 拉取安装包 []# wget "https://github.com/coder/code-server/releases/download/v4.0.0/code-…

探访九牧绿色黑灯工厂,找寻“科技卫浴 世界九牧”的答案

文 | 螳螂观察 作者 | 余一 你所想象中的工厂是怎么样的&#xff1f;灯火通明、人声鼎沸、人来人往&#xff1f;如果告诉你一座工厂既没有灯&#xff0c;也没有人&#xff0c;但却还在持续生产&#xff0c;你会不会觉得这是不可思议的事&#xff1f; 如果不是亲眼见证&#…

Simulink 自动代码生成:手写代码替换生成代码Code Replacement Tool使用

目录 前言 代码替换库操作步骤 代码生成验证 总结 前言 在实际工程开发过程中&#xff0c;Simulink生成的代码都是构建的算法实现的&#xff0c;纯软件实现&#xff0c;生成的代码大多也是直接在CPU上运行的。实际还有一些MCU集成了像Cordic&#xff0c;协处理器等。有些代…

WinEdt 11.1编辑器的尝鲜体验

WinEdt 11.1编辑器的尝鲜体验 2023年5月19日&#xff0c;WinEdt 11.1版本发布了&#xff0c;相比WinEdt 10.3, 最新版更加漂亮&#xff0c;更加友好&#xff0c;更加好用了&#xff01; 最大的改变是WinEdt 11.1 有了自带的WinEdtPDF阅读器&#xff0c;所以不再需要下载第三方…

ros2工作空间

我们先不管ros2工作空间是什么样子的&#xff0c;如果是我自己来搞一个工作空间&#xff0c;我一定是这样安排 一个文件夹用来放自己存放的文件&#xff0c;。。。。。。。。。。对应src文件夹 一个文件夹用来放编译后的文件&#xff0c;。。。。。。。。。。。对应intall文件…

模型微调技术

Parameter Efficient Fine Tuning (PEFT)和Low Rank Adaptation (LoRA)是2种非常重要的模型微调方法。这两种方法只微调模型的一小部分&#xff08;额外的&#xff09;参数&#xff0c;同时冻结预训练模型的大部分参数&#xff0c;从而大大降低了计算和存储成本。尤其是LoRA&am…

day61 layui和分页原理

昨日内容回顾 choices参数的使用 一般用在什么场景&#xff1a;当被存储的字段数据可能被列举完毕的时候一般会使用choices参数 性别 学历 来源 工作经验等 一般情况下不在数据表中直接存储中文&#xff0c;存数字、存字母来做映射 # 怎么使用 gender_choices ((1, 男),(2…

Weakly Supervised Visual Question Answer Generation

目录 一、论文速读 1. 1 论文概要总结 相关工作 主要贡献 论文主要方法 实验数据 未来研究方向 二、论文精度 2.1 论文试图解决什么问题&#xff1f; 2.2 论文中提到的解决方案之关键是什么&#xff1f; 2.3 用于定量评估的数据集是什么&#xff1f;代码有没有开源&a…

各语言语法

一些语法格式的特点&#xff1a; Html: <></> xx”” json: { “”:””, } 数组中可以嵌套对象&#xff0c;数组 css: xx{ //代表某些符号&#xff0c;比如. xxx:yyy; } JS 1.function test( ){ } 2.Const testfunction( ){ } //定义…

无法将RELEASE.pom上传到nexus的解决办法

在我们搭建私服仓库的时候&#xff0c;会将依赖放到私有仓库上管理&#xff0c;但是我最近在depoly的时候发现有个pom文件无法上传&#xff1a;其名字为xxxxx.2.5.0.RELEASE.pom&#xff0c;上传上去始终有问题&#xff0c;经过多次尝试可使用以下命令&#xff1a; 先将xxxxx.…

2024测试工程师必学的Jmeter:利用jmeter插件收集性能测试结果汇总报告和聚合报告

利用jmeter插件收集性能测试结果 汇总报告&#xff08;Summary Report &#xff09; 用来收集性能测试过程中的请求以及事务各项指标。通过监听器--汇总报告 可以添加该元件。界面如下图所示 汇总报告界面介绍&#xff1a; 所有数据写入一个文件&#xff1a;保存测试结果到本地…

阿里云服务器公网带宽如何修改?

阿里云服务器公网带宽不够用有哪些解决方法&#xff1f;可以更改带宽或带宽临时升级&#xff0c;更改带宽是永久公网带宽&#xff0c;带宽临时升级可以选择升级时间段&#xff0c;也可以绑定弹性公网EIP来修改公网带宽&#xff0c;阿里云服务器网aliyunfuwuqi.com分享阿里云服务…

ZYNQ_project:LCD

模块框图&#xff1a; 时序图&#xff1a; 代码&#xff1a; /* // 24h000000 4324 9Mhz 480*272 // 24h800000 7084 33Mhz 800*480 // 24h008080 7016 50Mhz 1024*600 // 24h000080 4384 33Mhz 800*480 // 24h800080 1018 70Mhz 1280*800 */ module rd_id(i…

解决java在idea运行正常,但是打成jar包后中文乱码问题

目录 比如&#xff1a; 打包命令使用utf-8编码&#xff1a; 1.当在idea中编写的程序,运行一切正常.但是当被打成jar包时,执行的程序会中文乱码.产生问题的原因和解决方案是什么呢? 一.问题分析 分别使用idea和jar包形式打印出System中所有的jvm参数---代码如下: public static…