您的当前位置:首页>全部文章>文章详情

【UniApp】最新使用uniapp本地打包APP安卓,已排坑

CrazyPanda发表于:2023-12-21 22:40:14浏览:349次TAG:

uniapp打包IOS!!!

1. 生成本地打包资源

1.png
1.png

2. 下载Android Studio和App离线SDK

导航路径:https://nativesupport.dcloud.net.cn/AppDocs/usesdk/android

下载的Android 离线SDK与本地开发工具版本对应
1.png

3. 解压得到的目录如下

1.png

4. 使用Android Studio打开Android 离线SDK解压目录里面这个文件夹,这个是示例项目,我们只需要更改这个项目的一些配置,其他配置HBuilderX已经配置好了

1.png

5. 切换到Project

1.png
1.png

6. 打开apps目录,把目录下的文件夹删除,我的是__UNI__B,然后打开HBuilderX本地打包的资源目录,最后拷贝到示例项目的apps目录下,也就是刚刚__UNI__B的位置

1.png

1.png
1.png
把dcloud_control.xml文件里面的id属性值__UNI__B改成manifest.json里面的id值相同
1.png
1.png

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>

1.png

8. 这里的三个值相同

1.png
1.png
这里的值修改一致
1.png

9. 因为3.1.10版本起需要申请Appkey配置项目

打开开发者中心,选择对应的项目
开发者中心https://dev.dcloud.net.cn/app/index?type=0
1.png

10. 点击编辑然后点击离线打包key管理,可以看到需要SHA1

1.png

11. 我们使用Android Studio生成

1.png
1.png

12. 可以看到示例项目已经有默认的配置,我们可以生成自己

1.png
1.png
1.png

13. 路径选择跟test.jks所以同一目录,并写上文件名字,后缀要是jks,我的是key.jks,然后保存。

1.png

14. 点击OK然后点击X关闭

1.png
1.png

15. 可以看到apps目录下已经有key.jks, 可以删除test.jks了

1.png

16. 然后填写配置的信息

1.png

17. 去key.jks目录下运行命令

keytool -list -v -keystore key.jks

1.png

18. 输入密码123456可以看到SHA1了

1.png
1.png

19. 复制SHA1到开发者中心,并且Android 包名要和build.gradle里面填写的一样

1.png

20. 保存,得到App Key复制到AndroidManifest.xml文件对应的位置

1.png

21. 点击build图标就可以进行打包了,完成✅

1.png

22. apk文件所在目录,拷贝到手机安装即可使用

1.png

报错

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版本

1.png

排坑所用到的所有文档参考

官方本地打包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

本文转自https://blog.csdn.net/qq_40230735/article/details/123346723如有侵权,可联系删除

猜你喜欢

【UniApp】uniapp 微信分享
前言&nbsp; &nbsp; &nbsp; &nbsp;微信分享是uniapp开发中常见的需求,大部分的app或者小程序都会具备微信分享的功能,但微信分享效果并不难实现,因为uniapp本身自带了一个微信分享的api,我们只需要调用微信分享的api即可实现前置条件&nbsp; &nbsp; &nbsp; &nbsp; 要完成微信分享首先得打开微信分享的功能,打开manifest.json文件,点击app模块配置,找到微信分享并选中即可&nbsp; &nbsp; &nbsp; &nbsp; 注意
发表于:2023-12-13 浏览:335 TAG:
【UniApp】uniapp 中使用不同字体
官方文档&nbsp; uniapp&nbsp; 字体展示效果 : uniapp 多种字体的显示H5网页AndroidIOSuni.loadFontFace({ &nbsp;&nbsp;family:&nbsp;&#39;Bitstream&nbsp;Vera&nbsp;Serif&nbsp;Bold&#39;, &nbsp;&nbsp;source:&nbsp;&#39;url(&quot;https://sungd.github.io/Pacifico.ttf&quot;)&#39;, &amp;nb
发表于:2023-12-21 浏览:284 TAG:
【UniApp】UniApp页面间的三种传参方式
一、 在跳转页面时使用URL编程式传参单向传递:只能上级页面传递到下级页面 注意:这种方法不适用传递大量的数据,传递的数据只能是string类型,如果想要传递对象或数组则需要使用JSON.stringify进行转换。 不适合用在uni.navigateBack(不携带跳转路由) 上级页面(通过URL传递数据)注意:后面拼接参数中不能存在空格,否则无法传递的参数为字符串属性&nbsp;preserveRevise(){ uni.navigateTo({ url:&#39;/pages/add
发表于:2024-03-29 浏览:306 TAG:
【UniApp】uniapp跨域
问:为什么会有跨域问题? 由于浏览器的同源策略导致的,是浏览器的一种安全保护机制。 浏览器从一个域名的网页去请求另一个域名的资源时,协议、域名、端口 任一不同,都是跨域解决uniapp的跨域问题有很多方式,下面总结一下常用的几种方式 1. 使用 jsonp,可在我们封装的网络通讯中添加dataType:&#39;jsonp&#39;总结: 但是此种方式仅支持 get 请求,post好像用不了。 具体可参考:https://www.imooc.com/article/2919312. 在unia
发表于:2023-12-08 浏览:331 TAG:
【UniApp】uniapp怎么隐藏导航
Uniapp是一种基于Vue.js开发的跨平台应用开发框架,它支持将一个应用打包成多个平台(如iOS、Android、H5等)。在开发Uniapp应用时,我们需要经常操作一些导航相关的功能,如导航栏、底部栏等的显示和隐藏。本文将介绍在Uniapp中如何实现隐藏导航的功能。在pages.json中配置导航栏先来看一下Uniapp中如何配置导航栏。在Uniapp中,我们可以通过pages.json文件来进行页面的配置。举个例子,在pages.json中如下配置:{ &nbsp;&nbsp;
发表于:2023-12-22 浏览:331 TAG:
【UniApp】uniapp路由跳转传递与接收参数
Uniapp 是一个基于 Vue.js 的跨平台开发框架,它允许开发者使用一套代码来同时构建 iOS、Android、H5 等多个平台的应用。在 Uniapp 中,路由传参是非常常见的需求,它可以让页面之间进行数据的传递和交互。下面是对 Uniapp 路由传参的详细解析一、传递参数在 Uniapp 中,可以通过两种方式来传递参数:1.通过 URL 参数传递通过在 URL 中添加参数的方式传递数据,可以在目标页面中通过 $route.query 获取传递过来的参数。例如,在 A 页面中跳转到 B
发表于:2023-12-13 浏览:390 TAG:
【UniApp】uniapp中弹出层如何遮挡住uniapp中自带的tabbar
在 uniapp 中,如果你想要遮挡住自带的 tabbar,你可以使用 uniapp 自带的弹出层组件来实现。具体来说,你可以使用 uniapp 的 popup 组件来实现弹出层的效果。你可以在 popup 组件中包含你想要显示的内容,然后设置 popup 组件的 mask 属性为 true,这样就可以在弹出层中显示一个半透明的蒙层,来遮挡住底部的 tabbar。示例代码如下:&lt;template&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;viewclass=&amp;quot
发表于:2023-12-13 浏览:337 TAG:
【UniApp】uniapp禁止页面上下滚动
uniapp禁止页面上下滚动功能场景第一个方法&quot;app-plus&quot;:{&quot;bounce&quot;:&quot;none&quot;}第二个方法功能场景我目前是在用uniapp做一个H5程序,中间有一个排行榜的页面只展示前十名,但是里面的导航是自定义导航栏,会占据文档流的位置,所以背景图宽高固定为100vh 100vw会导致页面比较晃(上下晃动),有损美观,就想办法不让页面出现滚动,我百度了两个方法:第一个方法&quot;app-plus&quot;:{“bounce
发表于:2023-12-12 浏览:393 TAG:
【UniApp】uniapp的标题怎么动态修改
Uniapp是一个基于Vue.js框架的跨平台开发工具,它可以将一个项目一次性编译成多个平台的应用程序,同时还提供了一些独特的功能,如动态修改标题等。在Uniapp中,我们可以很容易地实现动态修改标题的功能,具体方法如下:首先,在Vue组件中,我们可以使用mounted函数来获取到当前的页面实例,然后使用$refs属性来获取到头部组件中的标题组件,接着我们就可以使用this.$refs.title对象来对标题进行修改。示例代码如下:mounted()&nbsp;{ &nbsp;&amp;nbs
发表于:2023-12-25 浏览:352 TAG:
【UniApp】uniapp怎么实现清除缓存功能
&nbsp; &nbsp; &nbsp; &nbsp; 在移动应用的开发中,缓存是一种常见的技术手段,可以加快应用的响应速度,提升用户体验。然而,随着应用数据不断增加,缓存也会变得越来越庞大,导致应用运行缓慢甚至崩溃。因此,清除缓存功能成为了移动应用开发中不可或缺的一部分。在Uniapp框架中,提供了清除缓存的API接口,可以帮助我们轻松地实现清除缓存功能。下面,我们来看一下如何在Uniapp中使用清除缓存功能。一、获取缓存大小在清除缓存之前,我们需要先获取当前应用的缓存大小。Unia
发表于:2023-12-16 浏览:360 TAG: