前言:

为了公司需要uniapp引用一个第三方的jar包实现相关功能,只好用安卓封装这个第三方jar包,然后自己将api封装实现,再暴露给uniapp使用。
第一次研究安卓,若有啥不对的,或者写得不好的地方,请大家指正,努力学习,一直进步。

一、安装相关工具和环境

1、jdk1.8环境(略)
2、Android studio官网下载 或者 Android Studio中文社区
3、Android studio安装教程
4、最新Android离线SDK下载
5、自有证书生成

二、开发

  1. 安装好android studio后,导入离线SDK中UniPlugin-Hello-AS安卓项目


2. 菜单中File–>Open,打开之前下载的SDK中的UniPlugin-Hello-AS

导入后,等待下载相关依赖,根据提示去补全sdk。确认没有错误后即可。

三、构建组件

在项目根目录右击new——>Module——>Android Library——>next


到此创建完成。

1)先编辑组件目录的build.gradle文件。在最后面找到dependencies节点,修改内容


dependencies {compileOnly fileTree(dir: 'libs', include: ['*.jar'])compileOnly fileTree(dir: '../app/libs', include: ['uniapp-v8-release.aar']) implementation 'androidx.appcompat:appcompat:1.3.0'implementation 'com.google.android.material:material:1.4.0'testImplementation 'junit:junit:4.13.2'androidTestImplementation 'androidx.test.ext:junit:1.1.3'androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}

2)在src–>main–>java中,新建Java类,继承io.dcloud.feature.uniapp.common.UniModule,然后就可以在里面写自己的业务逻辑啦。

3)在app模块的assets中的dcloud_uniplugins.json文件中,注册组件

4)在app模块下添加新建的组件

四、添加第三方jar包

1、将jar包拷贝到libs目录下

2、右键添加jar包Add as Library…

3、在之前的java类中封装第三方jar包

4、封装好方法后,在右侧的Gradle双击assembleRelease进行打包

5、在build的output中的aar目录下生成了arr包

6、新建HBuild X 项目

7,编辑pages下的index中的index.vue文件

<template><view class="content"><view class="button1"><button @click="showToast(message)">直接显示</button></view><view class="button2"><button @click="processData(waitprocessdata)">回调</button></view><view class="button3"><button @click="encoder(encoderStr)">编码字符串</button></view><view class="button4"><button @click="decoder()">解码字符串</button></view></view>
</template><script>const ToastPlusModule = uni.requireNativePlugin("toastPlusTest")export default {data() {return {message: '我是直接显示的数据',waitprocessdata: '我是待处理的数据',decoderStr: "",encoderStr: "我是一个被编码和解码的数据"}},onLoad() {},methods: {encoder(data) {console.log("23132213")ToastPlusModule.encoder(data, res => {console.log("1111111")this.decoderStr = resuni.showToast({title: "编码数据--->" + res,icon: 'none',duration: 2000});})},decoder() {ToastPlusModule.decoder(this.decoderStr, res => {uni.showToast({title: "解码数据-->" + res,icon: 'none',duration: 2000});})},showToast(message) {ToastPlusModule.showToast(message)},processData(data) {ToastPlusModule.processData(data, res => {ToastPlusModule.showToast(res)})}}}
</script><style>.button1 {display: flex;margin-top: 200rpx;margin-left: auto;margin-right: auto;flex-direction: column;align-items: center;justify-content: center;}.button2 {display: flex;flex-direction: column;align-items: center;justify-content: center;margin-top: 100rpx;margin-left: auto;margin-right: auto;margin-bottom: 50rpx;}.button3 {display: flex;flex-direction: column;align-items: center;justify-content: center;margin-top: 100rpx;margin-left: auto;margin-right: auto;margin-bottom: 50rpx;}.button4 {display: flex;flex-direction: column;align-items: center;justify-content: center;margin-top: 100rpx;margin-left: auto;margin-right: auto;margin-bottom: 50rpx;}
</style>

8、在uniapp项目中新增文件结构如下

9、将android studio中生成的aar包放入android目录中,并新建package.json文件内容如下

{"name": "toastPlusTest", //这是插件的名称"id": "toastPlusTest", //插件的唯一标识,与下方的plugins中的name一致"version": "1.0.0",  //版本号"description": "原生Toast", //描述"_dp_type":"nativeplugin","_dp_nativeplugin":{"android": {"plugins": [{"type": "module",  //类型"name":"toastPlusTest", //名称,与上方的id一致即可"class": "com.haxk.uniapptest.ToastPlus" //class路径}],"integrateType": "aar" }    }
}

10、设置manifest.json的基础配置,并添加原生插件配置

11、然后自定义基座打包

然后将得到的.apk文件安装在手机上,就可以测试uniapp调用android原生开发的插件(包含调用第三方的插件)

12、拓展,将uniapp直接植入android中运行查看效果

1、在开发者中心去申请appkey

2、将生成的appkey加入app模块的AndroidManifest.xml文件中

3、将项目生成本地资源

4、将打好的包放入app模块中的apps下(注意appid)

5、修改dcloud_control.xml中的appid

6、修改app模块中的build.gradle中的证书信息

五、注意事项

1、Gradle版本设置

2、http Proxy设置

3、Android SDK设置


4、注意主项目下的build.gradle中gradle版本和android版本一致

5、模块中的配置

6 、右侧的gradle中无tasks


然后同步等待

uniapp使用安卓原生插件(包含插件带第三方jar)相关推荐

  1. Uniapp——使用安卓原生插件

    Uniapp--使用安卓原生插件 1. 开发环境 2. 解压SDK压缩包 3. 导入UniPlugin-Hello-AS项目.并切换为project显示 4. 可删除提供的demo文件 5. 新建mo ...

  2. uniapp 调用安卓原生插件 安卓原生又调用了第三方sdk(第三方原生开发的aar怎么转成uni可以使用的aar)

    最近在做一个关于uniapp的项目,遇到一个需求.有一个原生开发的aar的原生插件,不是插件市场的,开发说明原生开发的插件不可以直接提供给uniapp使用,需要按照uniapp原生插件开发文档重新制作 ...

  3. uniapp引入支付宝原生扫码插件步骤详解

    1.插件市场导入插件 支付宝原生扫码插件地址 点击购买(0元)云打包 选择需要导入的项目 选择安卓版本默认以uni-app应用标识 生成的包名 2.阿里云操作 开通阿里云 mPaaS 地址 创建一个应 ...

  4. Eclipse安装低版本4.3并安装FatJar打包插件来打包引用第三方jar包的项目成jar包

    场景 Eclipse中打包引用了第三方jar包的Java Application项目,除了添加MANIFESE.MF文件,还可以使用 Fat Jar插件打成jar包. 但是Eclipse的版本在4.3 ...

  5. 【TTS】uni-app语音播报app开发 / MT-TTS安卓原生自带语音合成插件(免费无限次)

    什么是TTS? TTS是Text To Speech的缩写,即"从文本到语音",是人机对话的一部分,让机器能够说话.TTS是语音合成应用的一种. 在程序开发中,有很多TTS的插件, ...

  6. uniapp ios原生插件开发之插件包格式(package.json)

    文章目录 一.前言 二.插件包格式介绍 2.1 package.json 2.2 iOS 插件包配置 plugins integrateType 依赖资源文件 resources embedSwift ...

  7. uniapp使用原生小程序插件

    本文主要讲述在uniapp上使用原生插件步骤 1.在使用插件之前,先登录微信公众平台,在微信公众平台,点击左下角设置==>插件管理==>添加插件==>输入插件名字==>点击确定 ...

  8. Uniapp Android 佳博 小票打印机 插件

    Uniapp Android 佳博 小票打印机 插件 Uniapp Android 佳博小票打印机插件:  支持图片.条型码.二维码 打印. 1. 实例化插件 const gp= uni.requir ...

  9. uniapp微信小程序图片裁剪插件,支持自定义尺寸、定点等比例缩放、拖动、图片翻转、剪切圆形/圆角图片、定制样式

    qf-image-cropper2.0 图片裁剪插件 1.效果预览: 2.平台支持: 1.支持微信小程序(移动端.PC端.开发者工具) 2.H5平台(2.1.0版本起) 3. 支持APP平台(2.1. ...

最新文章

  1. SAP LSMW 因物料描述里有换行符或者引号导致数据导入失败
  2. Visual C++ 2011-6-6
  3. Android XML使用的学习记录
  4. 幅度调制信号 matlab,《利用MATLAB实现信号的幅度调制与解调.doc
  5. java需要转go吗,【Java转Go】弄清GOPATH
  6. 为什么现在好多年轻人连1万都掏不出来,却觉得100万很少?
  7. libpng warning: iCCP: known incorrect sRGB profile
  8. 美赛建模需要matlab吗,美赛(matlab自学)之微分方程建模
  9. openstack 报错
  10. python tkinter button_Python3 Tkinter-Button
  11. MVC自定义路由的配置,必须把自己的路由写在前面
  12. 彻底删除dll文件,填坑!
  13. 计算机telnet命令大全,telnet 命令使用方法详解,telnet命令怎么用
  14. 微信公众号内推送模板消息
  15. stm32波特率计算
  16. win10系统mysql重新配置密码
  17. 【oracle工具】plsqldev美化规则文件详细解释(关键字大写,标识符小写等规则)
  18. 搭建ruby + jekyll + github pages
  19. Linux上安装oracle19c客户端,Oracle 19c的下载和安装部署(图形安装和静默安装)
  20. 手机基站伪装潜伏引强烈关注

热门文章

  1. MATLAB 怎样将文本复制到剪切板
  2. 设计模式学习笔记1——概述 UML图 软件设计原则
  3. Python代码转如何换为exe可执行程序详解
  4. 解读 Rust 2021 Edition RFC
  5. 收藏全球最有趣的网站 (上)
  6. 练习使用WebMagic爬取唯美图片
  7. U盘格式化后数据恢复【图文教程】
  8. C#使用事务SqlTransaction操作sql语句
  9. .net 4.0 ValidateRequest=false 无效
  10. 【毕业设计】时间序列的股票预测与分析系统 - python 大数据