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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值