Skip to content

uniapp 离线打包

本文章需要用到的相关文件资料

  1. HbuildeX
  2. Android Studio
  3. jdk1.8 提取码:Yn5E
  4. Android 离线 SDK

教程开始

1.uniapp需要登录账号 2.如果在使用Android Studio 的时候出现下方提示,要选择Sync now > 在这里插入图片描述

首先安装打开 Android Studio 左上角 File ——>open——>选择 Android 离线 SDK 里面的 HBuilder-Integrate-AS 在这里插入图片描述在这里插入图片描述 然后左上角 File——>Settings——>Build,Execution,Deployment——>BuildTools——>Gradle,找到右面页面最下面的 Gradle JDK:选择自己下载的 jdk1.8在这里插入图片描述![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/e5040faf9f1d4c01a8af7e6646e66eb8.png 接下来打开uniapp 官网,点击左上角的 为开发者而生在这里插入图片描述 在跳转的页面点击最后边的开发者后台 在这里插入图片描述

找到你想要打包的那一个项目 在这里插入图片描述

在跳转的页面找到 Android 云端证书,选择生成,然后下载到桌面 在这里插入图片描述 点击 各平台信息,这里应该是没有东西的,选择右上角的新增,包名根据自己的需要自行输入格式一般是域名反过来**<com.xxx.www>** 在这里插入图片描述 填入三个相关信息,这些信息可以在Android 云端证书页面点击证书详情看到在这里插入图片描述在这里插入图片描述 接下来在各平台信息页面找到离线打包 key,点击后获取appkey在这里插入图片描述在这里插入图片描述

我们用hbuikder打开你的项目,上面 发行——>原生 app——>本地打包——>生成本地打包 app 资源在这里插入图片描述 在下方控制台可以看到项目导出的路径,点击可进入文件夹 在这里插入图片描述 点击路径位置的resources,并复制对应文件 在这里插入图片描述在这里插入图片描述 我们返回Android Studio,将 simpleDemo\src\main\assets\apps 下面的 UNIA 替换成我们自己的文件 在这里插入图片描述 我们这里切换成Project,然后将我们下载的证书放在根目录下 在这里插入图片描述

在这里插入图片描述在这里插入图片描述

接下来我们需要修改几个文件内容

我们切回Android,打开AndroidManifest.xml,将 package 修改成自己项目的包名,然后右边代码划到最底部,将 android:value 修改成自己的appkey在这里插入图片描述在这里插入图片描述

在这里插入图片描述

接在选择dcloud_control.xml文件,在appid那里填入自己的appid在这里插入图片描述在这里插入图片描述 我们再找到strings.xml文件,将 app_name 修改为自己项目的名称 在这里插入图片描述在这里插入图片描述 找到下方文件,修改想用内容,我会将要修改的地方以及修改成上面给你们用图片的方式指出 在这里插入图片描述在这里插入图片描述在这里插入图片描述 下方还需要配置

在这里插入图片描述 别名 在这里插入图片描述 密码: 在这里插入图片描述在这里插入图片描述

证书的绝对路径如何拿到:

左上角先切换到 Project,然后根据图片进行操作,右键 Copy Path/Reference,在弹出来的选项中选择 Absolute Path,然后粘贴到对应的地方就行 在这里插入图片描述在这里插入图片描述

插件市场下载 uni-app 插件(此处以 RichAlert 为例)

插件资源配置

s 将下载的插件解压,将插件中 android 目录下的 aar/jar 文件放入 libs 下,其余文件参考插件文档放入指定文件夹中

img

在 assets 目录下创建 dcloud_uniplugins.json 文件

插件配置信息请参考插件配置文档或插件配置文件 package.json 关于 package.json 请参考:Android uni-app 原生插件开发文档

json
{
  "nativePlugins": [
    {
      "plugins": [
        {
          "type": "module",
          "name": "DCloud-RichAlert",
          "class": "uni.dcloud.io.uniplugin_richalert.RichAlertWXModule"
        }
      ]
    }
  ]
}

uni-app 离线打包 APK 体积比云打包大的原因

因为选择了多个 ndk 架构

只要在 build.gradle 文件中找到 ndk 节点,添加 abiFilters 'armeabi-v7a'即可

javascript
android {
    ndk {
        abiFilters 'x86', 'armeabi-v7a', 'arm64-v8a'
    }
}

基于 MIT 许可发布