【UniApp】最新使用uniapp本地打包APP安卓,已排坑
uniapp打包IOS!!!
1. 生成本地打包资源
2. 下载Android Studio和App离线SDK
导航路径:https://nativesupport.dcloud.net.cn/AppDocs/usesdk/android
下载的Android 离线SDK与本地开发工具版本对应
3. 解压得到的目录如下
4. 使用Android Studio打开Android 离线SDK解压目录里面这个文件夹,这个是示例项目,我们只需要更改这个项目的一些配置,其他配置HBuilderX已经配置好了
5. 切换到Project
6. 打开apps目录,把目录下的文件夹删除,我的是__UNI__B,然后打开HBuilderX本地打包的资源目录,最后拷贝到示例项目的apps目录下,也就是刚刚__UNI__B的位置
把dcloud_control.xml文件里面的id属性值__UNI__B改成manifest.json里面的id值相同
7. 添加provider信息到Androidmanifest.xml的application节点中
在这个链接里面往下翻可以看到说明https://nativesupport.dcloud.net.cn/AppDocs/usesdk/android
代码块贴出来了
<!--provider节点必须添加--> <provider android:name="io.dcloud.common.util.DCloud_FileProvider" android:authorities="${apk.applicationId}.dc.fileprovider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/dcloud_file_provider" /> </provider>
8. 这里的三个值相同
这里的值修改一致
9. 因为3.1.10版本起需要申请Appkey配置项目
打开开发者中心,选择对应的项目
开发者中心https://dev.dcloud.net.cn/app/index?type=0
10. 点击编辑然后点击离线打包key管理,可以看到需要SHA1
11. 我们使用Android Studio生成
12. 可以看到示例项目已经有默认的配置,我们可以生成自己
13. 路径选择跟test.jks所以同一目录,并写上文件名字,后缀要是jks,我的是key.jks,然后保存。
14. 点击OK然后点击X关闭
15. 可以看到apps目录下已经有key.jks, 可以删除test.jks了
16. 然后填写配置的信息
17. 去key.jks目录下运行命令
keytool -list -v -keystore key.jks
18. 输入密码123456可以看到SHA1了
19. 复制SHA1到开发者中心,并且Android 包名要和build.gradle里面填写的一样
20. 保存,得到App Key复制到AndroidManifest.xml文件对应的位置
21. 点击build图标就可以进行打包了,完成✅
22. apk文件所在目录,拷贝到手机安装即可使用
报错
An exception occurred applying plugin request [id: ‘com.android.application‘]
Failed to apply plugin ‘com.android.internal.application’.
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
You can try some of the following options:
changing the IDE settings.
changing the JAVA_HOME environment variable.
changing org.gradle.java.home in gradle.properties.
是因为本地系统安装的是Java 1.8,去下载Java 11安装就好了
java -version 查看java版本
排坑所用到的所有文档参考
官方本地打包app说明:
https://nativesupport.dcloud.net.cn/AppDocs/usesdk/android
官方配置Appkey说明:
https://nativesupport.dcloud.net.cn/AppDocs/usesdk/appkey
参考文章:
https://blog.csdn.net/qq_41816742/article/details/120997498?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2aggregatepagefirst_rank_ecpm_v1~rank_v31_ecpm-3-120997498.pc_agg_new_rank&utm_term=appkey+is+not+configured+or+configured+incorrectly&spm=1000.2123.3001.4430
uni-app运行环境版本和编译器版本不一致的问题:
https://ask.dcloud.net.cn/article/35627
猜你喜欢
- 【UniApp】uniapp 微信分享
- 前言 微信分享是uniapp开发中常见的需求,大部分的app或者小程序都会具备微信分享的功能,但微信分享效果并不难实现,因为uniapp本身自带了一个微信分享的api,我们只需要调用微信分享的api即可实现前置条件 要完成微信分享首先得打开微信分享的功能,打开manifest.json文件,点击app模块配置,找到微信分享并选中即可 注意
- 【UniApp】uniapp 中使用不同字体
- 官方文档 uniapp 字体展示效果 : uniapp 多种字体的显示H5网页AndroidIOSuni.loadFontFace({ family: 'Bitstream Vera Serif Bold', source: 'url("https://sungd.github.io/Pacifico.ttf")', &nb
- 【UniApp】UniApp页面间的三种传参方式
- 一、 在跳转页面时使用URL编程式传参单向传递:只能上级页面传递到下级页面 注意:这种方法不适用传递大量的数据,传递的数据只能是string类型,如果想要传递对象或数组则需要使用JSON.stringify进行转换。 不适合用在uni.navigateBack(不携带跳转路由) 上级页面(通过URL传递数据)注意:后面拼接参数中不能存在空格,否则无法传递的参数为字符串属性 preserveRevise(){ uni.navigateTo({ url:'/pages/add
- 【UniApp】uniapp跨域
- 问:为什么会有跨域问题? 由于浏览器的同源策略导致的,是浏览器的一种安全保护机制。 浏览器从一个域名的网页去请求另一个域名的资源时,协议、域名、端口 任一不同,都是跨域解决uniapp的跨域问题有很多方式,下面总结一下常用的几种方式 1. 使用 jsonp,可在我们封装的网络通讯中添加dataType:'jsonp'总结: 但是此种方式仅支持 get 请求,post好像用不了。 具体可参考:https://www.imooc.com/article/2919312. 在unia
- 【UniApp】uniapp怎么隐藏导航
- Uniapp是一种基于Vue.js开发的跨平台应用开发框架,它支持将一个应用打包成多个平台(如iOS、Android、H5等)。在开发Uniapp应用时,我们需要经常操作一些导航相关的功能,如导航栏、底部栏等的显示和隐藏。本文将介绍在Uniapp中如何实现隐藏导航的功能。在pages.json中配置导航栏先来看一下Uniapp中如何配置导航栏。在Uniapp中,我们可以通过pages.json文件来进行页面的配置。举个例子,在pages.json中如下配置:{
- 【UniApp】uniapp路由跳转传递与接收参数
- Uniapp 是一个基于 Vue.js 的跨平台开发框架,它允许开发者使用一套代码来同时构建 iOS、Android、H5 等多个平台的应用。在 Uniapp 中,路由传参是非常常见的需求,它可以让页面之间进行数据的传递和交互。下面是对 Uniapp 路由传参的详细解析一、传递参数在 Uniapp 中,可以通过两种方式来传递参数:1.通过 URL 参数传递通过在 URL 中添加参数的方式传递数据,可以在目标页面中通过 $route.query 获取传递过来的参数。例如,在 A 页面中跳转到 B
- 【UniApp】uniapp中弹出层如何遮挡住uniapp中自带的tabbar
- 在 uniapp 中,如果你想要遮挡住自带的 tabbar,你可以使用 uniapp 自带的弹出层组件来实现。具体来说,你可以使用 uniapp 的 popup 组件来实现弹出层的效果。你可以在 popup 组件中包含你想要显示的内容,然后设置 popup 组件的 mask 属性为 true,这样就可以在弹出层中显示一个半透明的蒙层,来遮挡住底部的 tabbar。示例代码如下:<template> <viewclass=&quot
- 【UniApp】uniapp禁止页面上下滚动
- uniapp禁止页面上下滚动功能场景第一个方法"app-plus":{"bounce":"none"}第二个方法功能场景我目前是在用uniapp做一个H5程序,中间有一个排行榜的页面只展示前十名,但是里面的导航是自定义导航栏,会占据文档流的位置,所以背景图宽高固定为100vh 100vw会导致页面比较晃(上下晃动),有损美观,就想办法不让页面出现滚动,我百度了两个方法:第一个方法"app-plus":{“bounce