Uniapp离线打包(Android):问题:未配置appkey或配置错误

7,294 阅读3分钟

uniapp离线打包是在安卓端或者iOS端会遇到:未配置appkey或配置错误,针对这一问题来出解决方式。官网:Android原生工程配置里面对于Appkey配置及参数也并不是很详细,特此梳理一下。我的电脑是mac,Android Studio也是最新的Android Studio Jellyfish | 2023.3.1

一、新建一个uniapp项目用来测试

新建项目.png 项目名字.png

二、按照官方文档去下载App离线SDK

App离线SDK下载:最新android平台SDK下载

|-- HBuilder-Hello			App离线打包演示应用
|-- HBuilder-Integrate-AS		集成uni-app的最简示例
|-- SDK				SDK库文件目录
|-- Feature-Android.xls		Android平台各扩展Feature API对应的详细配置
|-- Readme.txt			版本说明文件及注意事项
|-- UniPlugin-Hello-AS		uni原生插件开发示例
2.0、导入工程

2.7.0之后提供HBuilder-Integrate-AS工程,可以直接导入HBuilder-Integrate-AS工程,直接运行simpleDemo项目即可。 HBuilder-Integrate-A.png Android Studio打开项目会报如下错误 Possible solution.png 点击链接下载即可 BUILDSUCCESSFUL.png

2.1、去HBuilderX离线打包

去HBuilderX离线打包.png 离线包.png

2.3、将HBuilderX导出的资源复制到assets->apps目录下

导出的资源.png

2.4、修改dcloud_control.xml文件

修改dcloud_control.xml中的appid为拷贝过来的uni-app的id,确保dcloud_control.xml中的appid与manifest.json中的id与文件夹名一致,如下图所示: dcloud_control.png 设置App名字 设置App名字.png

2.5、配置Appkey

3.1.10版本起需要申请 Appkey,申请请参考

Appkey配置.png

三、配置Android应用签名SHA1值和SHA256值(Android Studio配置)

1、Android Studio打开点击Build->Generate Signed App Bundle/APK进入

Android Studio.png

2、选择apk,点击Next

选择apk.png 创建.png 说明.png 创建了ceshi.keystore证书存放在simpleDemo目录下 image.png 这个样子,点击ok。 image.png 选择OK即可 image.png 选择release, 点击Create即可大功告成! image.png 项目报错了:

Unable to make field private final java.lang.String java.io.File.path accessible: module java.base does not "opens java.io" to unnamed module @5a6382ef File.path.png 解决方案:在你的 gradle.properties 文件中,添加以下 JVM 参数:

org.gradle.jvmargs=--add-opens java.base/java.io=ALL-UNNAMED

ALL-UNNAMED.png

3、在build.gradle文件添加刚刚创建的证书

image.png 将生成的证书放ceshi.keystore拷贝一份存在桌面用于uniapp打包apk。 截屏2024-06-13 10.02.11.png

4、uniapp打包apk,通过apk查看应用签名SHA1值和SHA256值

包名.png uniapp打包apk,对应证书和证书私钥密码即可 uniapp打包apk.png 打包完的apk包 逗我玩.png

5、命令行中查看apk包签名

终端中运行java -version命令来检查是否已安装。

java -version

java-version.png 桌面新建一个myapk文件夹,将APK文件移动到桌面myapk文件夹中 myapk文件.png 打开终端,首先cd到myapk文件夹 myapk.png 运行以下命令:

keytool -printcert -jarfile app.apk//替换成你app的名字家后缀

image.png 这样就查看到了应用签名SHA1值和SHA256值,然后将值复制到应用信息Androis配置项即可 截屏2024-06-13 10.32.39.png 点击提交即可 截屏2024-06-13 10.34.34.png 这样我们就生成了Appkey

四、配置Appkey(此处按文走即可)

打开Androidmanifest.xml, 导航到Application节点,创建meta-data节点,name为dcloud_appkey,value为申请的AppKey如下: dcloud_appkey.png 填写完成运行一下看能否成功? 填写完成运行一下看能否成功.png 还是出错了,搜了一下解决方案: 找到AndroidMainifest.xml文件 image.pngactivity第一行添加android:exported="true"即可解决

android:exported="true"

继续运行看看是否成功 image.png 运行成功,没有未配置appkey或配置错误提示,证明方法是对的。从打包的apk查看应用签名相对来说是比较精确的,个人观点哈😂

这里如果填写的不对会导致如下图错误,此文也是为了解决这一问题的。 未配置appkey或配置错误.png

如有不同见解请私信或评论区发布,我也是摸索出来的,互相进步吧!