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 true
            reset()
            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页面就调出来了
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu22.04 git 安装

安装git&#xff1a;默认情况下&#xff0c;Git 在 ubuntu 22.04 基础存储库中可用。 现在运行以下命令在您的 Ubuntu 系统上安装最新版本的 Git&#xff1a; 查看当前版本号 git --version

第二证券:买国债逆回购的5个技巧?国债逆回购有什么技巧?

买国债逆回购存在以下五个技巧&#xff1a; 1、在周四买一天期的国债逆回购 出资者在周四购买1天期的国债逆回购&#xff0c;实践收益会按3天核算&#xff0c;一同&#xff0c;资金在周五依然可用于出资并获取收益。 2、节假日前买国债逆回购 国债逆回购收益率跟商场的资金…

Flink CDC -Sqlserver to Sqlserver java 模版编写

1.基本环境 <flink.version>1.17.0</flink.version> 2. 类文件 package com.flink.tablesql;import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.apache.flink.streaming.api.environment.StreamExecutionEnviro…

oracle数据库巡检常见脚本-系列二

简介 作为数据库管理员&#xff08;DBA&#xff09;&#xff0c;定期进行数据库的日常巡检是非常重要的。以下是一些原因&#xff1a; 保证系统的稳定性&#xff1a;通过定期巡检&#xff0c;DBA可以发现并及时解决可能导致系统不稳定的问题&#xff0c;如性能瓶颈、资源利用率…

MEMS制造的基本工艺——晶圆键合工艺

晶圆键合是一种晶圆级封装技术&#xff0c;用于制造微机电系统 (MEMS)、纳米机电系统 (NEMS)、微电子学和光电子学&#xff0c;确保机械稳定和气密密封。用于 MEMS/NEMS 的晶圆直径范围为 100 毫米至 200 毫米&#xff08;4 英寸至 8 英寸&#xff09;&#xff0c;用于生产微电…

提升企业财务管理效率的首选软件——Manager for Mac

Manager for Mac作为一款功能强大且用户友好的企业会计软件&#xff0c;不仅能够提升企业的财务管理效率&#xff0c;还能够保护企业财务数据的安全性和稳定性。如果您正在寻找一款适合Mac平台的企业会计软件&#xff0c;不妨选择Manager for Mac&#xff0c;让您的企业财务管理…

企业微信身份验证

本篇主要是在上一篇获取第三方凭证基础上&#xff0c;用户通过三方网站自定义授权登录后获取用户信息&#xff0c;以实现用户绑定登录功能。 构造第三方应用授权链接 如果第三方应用需要在打开的网页里面携带用户的身份信息&#xff0c; 第一步需要构造如下的链接来获取授权c…

opencv-Hough 直线变换

Hough 直线变换是一种在图像中检测直线的技术。它通过在极坐标空间中表示图像中的直线&#xff0c;将直线检测问题转换为参数空间的累加问题。OpenCV 提供了 cv2.HoughLines() 和 cv2.HoughLinesP() 函数来执行 Hough 直线变换。 cv2.HoughLines() lines cv2.HoughLines(ima…

iOS APP包分析工具 | 京东云技术团队

介绍 分享一款用于分析iOSipa包的脚本工具&#xff0c;使用此工具可以自动扫描发现可修复的包体积问题&#xff0c;同时可以生成包体积数据用于查看。这块工具我们团队内部已经使用很长一段时间&#xff0c;希望可以帮助到更多的开发同学更加效率的优化包体积问题。 工具下载…

深度学习之六(自编码器--Autoencoder)

概念 自编码器(Autoencoder)是一种神经网络架构,用于无监督学习和数据的降维表示。它由两部分组成:编码器(Encoder)和解码器(Decoder)。 结构: 编码器(Encoder): 接收输入数据并将其压缩为潜在表示(latent representation),通常比输入数据的维度要低。编码器的…

探索结构体的奥秘

目录 &#x1f342;结构体 1&#xff0c;结构体的声明 1.1 结构的基础知识 1.2 结构的声明 1.3 特殊的声明 1.4 结构的自引用 1.5 结构体变量的定义和初始化 1.6 结构体内存对齐 1.6.1 如何计算 1.6.2 为什么存在内存对齐 1.7 修改默认对齐数 1.8 结构体传参 2&am…

小型内衣裤洗衣机哪个牌子好?性价比小型洗衣机推荐

内衣内裤应该如何清洗才能实现在不伤衣的同时有能够洗干净呢&#xff1f;其实除了使用温水搭配手洗以外&#xff0c;还有一些清洗方式&#xff0c;那就是选择一台专门为内衣定制的内衣洗衣机。目前内衣洗衣机由于精致小巧&#xff0c;方便安装&#xff0c;方便使用&#xff0c;…

常见网络安全防护

1 阻断服务攻击&#xff08;DOS&#xff09; 阻断服务攻击&#xff0c;想办法目标网络资源用尽变种&#xff1a;分布式阻断服务攻击 影响&#xff1a; 宽带消耗性&#xff08;消耗目标的带宽&#xff09;资源消耗型&#xff08;消耗目标的计算资源&#xff09; 解决方案&am…

【OpenCV+OCR】计算机视觉:识别图像验证码中指定颜色文字

文章目录 1. 写在前面2. 读取验证码图像3. 生成颜色掩码4. 生成黑白结果图5. OCR文字识别6. 测试结果 【作者主页】&#xff1a;吴秋霖 【作者介绍】&#xff1a;Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作&#xff01; 【…

易点易动设备管理系统提升设备能耗管理和设备状态监控效率

如今&#xff0c;能源效率和设备状态监控对于企业来说变得越发重要。传统的设备管理方式往往存在能耗浪费和难以实时监控设备状态的问题。为了解决这些问题&#xff0c;易点易动设备管理系统应运而生。本文将介绍易点易动设备管理系统的功能和优势&#xff0c;以及如何通过它提…

FreeRTOS学习之路,以STM32F103C8T6为实验MCU(2-2:中断)

学习之路主要为FreeRTOS操作系统在STM32F103&#xff08;STM32F103C8T6&#xff09;上的运用&#xff0c;采用的是标准库编程的方式&#xff0c;使用的IDE为KEIL5。 注意&#xff01;&#xff01;&#xff01;本学习之路可以通过购买STM32最小系统板以及部分配件的方式进行学习…

Python中使用pyzbar实现二维码生成和识别功能

目录 一、引言 二、pyzbar库介绍 三、安装pyzbar库 四、使用pyzbar生成二维码 五、使用pyzbar识别二维码 一、引言 随着二维码的普及和应用&#xff0c;二维码生成和识别功能在日常生活和工作中越来越重要。在Python中&#xff0c;我们可以使用pyzbar库来实现二维码生成和…

9.9 Windows驱动开发:内核远程线程实现DLL注入

在笔者上一篇文章《内核RIP劫持实现DLL注入》介绍了通过劫持RIP指针控制程序执行流实现插入DLL的目的&#xff0c;本章将继续探索全新的注入方式&#xff0c;通过NtCreateThreadEx这个内核函数实现注入DLL的目的&#xff0c;需要注意的是该函数在微软系统中未被导出使用时需要首…

TikTok与精神健康:社交媒体在压力时代的作用

在当今数字化和社交化的时代&#xff0c;社交媒体已成为人们生活中不可或缺的一部分。其中&#xff0c;TikTok作为一款备受欢迎的短视频应用&#xff0c;不仅改变了人们的娱乐方式&#xff0c;也对精神健康产生了深远的影响。 本文将深入探讨TikTok在压力时代对精神健康的作用…

【VScode】安装配置、插件及远程SSH连接

一、VSCode安装 二、配置安装插件 三、配置远程连接SSH 四、MinGW 一、VSCode安装 VS官网 Visual Studio Code - Code Editing. Redefined下载安装包&#xff1a; 二、配置安装插件 安装中文插件 配置字体为20 配置文件–>首选项->设置->Font Size为20 设置 VSC…