Uniapp 引入 Android aar 包 和 Android 离线打包

需求:

原生安卓 apk 要求嵌入到 uniapp 中,并通过 uniapp 前端调起 app 的相关组件。
下面手把手教你,从 apk 到 aar,以及打包冲突到如何运行,期间我所遇到的问题都会 一 一 进行说明,相关版本以我文章内为例子,其他版本如果存在差异请自行解决(不过一般也不会有很大差别啦)

官方文档传送门:uni原生插件开发教程

一、uniapp(这里以新建为主演示)

直接在 HBuilder 中新建即可
新建完成后,uniapp 工作台会创建对应的项目,等会生成 appkey 会用到(没有 dcloud 账号就创建一个)

二、Android环境(离线基座项目)搭建

因为我们是 Android 开发的,所以我们只看 Android 部分就可以了,开发环境如下:
在这里插入图片描述
首先下载对应 HBuilderX 对应版本的 SDK

1. 查看我们当前 HBuilder 的版本(建议升级到最新):

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

2. 点击以下红框部分,跳转到查下 Android sdk 界面,选择对应的版本下载,如果HBuilder 不是最新的,就到历史版本中下载对应的即可

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

3. 在 Android Studio 中,新建项目(选 java,当前项目是我们离线基座的apk,不是我们的项目的),记录下包名(以下我的相关配置):

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

4. 添加相关配置:

app 下 build.gradle:
    implementation 'androidx.appcompat:appcompat:1.0.0'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'com.alibaba:fastjson:1.2.83'
    implementation 'androidx.webkit:webkit:1.3.0'
    implementation 'com.facebook.fresco:fresco:2.5.0'
    implementation "com.facebook.fresco:animated-gif:2.5.0"
    implementation 'androidx.recyclerview:recyclerview:1.0.0'

    implementation 'com.squareup.okio:okio:1.15.0'
    implementation 'com.squareup.okhttp3:okhttp:3.12.12'
    implementation 'com.github.bumptech.glide:glide:4.9.0'

下载后的sdk放进来(我们自己的aar包打包后直接放进来,然后同步即可):
在这里插入图片描述
可以看到,这个基座是一个 androidX 的项目 ,如果我们要引进来的项目是 support 的也没关系(我的就是 support 的)

5. 搞一个签名,签名网上有很多教程,这里我就不贴出来了,可以自行搜索,这里我贴一下我的配置,这个签名的作用,是为后面我们打包 apk 和申请 appkey 的时候用到的(离线打包自签名,咋搞都可以,只要签名能用):

在这里插入图片描述

6. AndroidManifest.xml

注意点:
(1)application 添加:tools:replace=“android:icon,android:allowBackup”
(2)provider 的 authorities需要改成你当前的 包名…dc.fileprovider,例如:android:authorities=“com.android.myapplication2.dc.fileprovider”
(3) 增加 dcloud_appkey,value 就是等会我们要去 uniapp 工作台申请的 appkey

<meta-data
            android:name="dcloud_appkey"
            android:value="xxx" />

完整示例如下

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.android.myapplication2">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rising_chain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值