我的编程空间,编程开发者的网络收藏夹
学习永远不晚

uniapp 原生安卓开发插件(module),以及android环境本地调试(一)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

uniapp 原生安卓开发插件(module),以及android环境本地调试(一)

uniapp 原生安卓开发插件(module),以及android环境本地调试

1、开发前景

由于uniapp 框架的局限先,有很多功能不能如原生android开发使用顺畅,因此,需要使用插件进行辅助,再由uniapp引入插件,使得功能完善。废话不多说,直接上教程!觉得有用的麻烦点个赞吧!

2、准备工作

  • uniapp 项目(也就是你自己的项目)
  • 下载 安装JDK (java的JDK)jdk1.8
  • 下载 安装 android studio (csdn下载),官网下载 android studio(官网下载需要翻墙、安装的时候也是需要翻墙的,公司的网络最好能够访问外网,不然会下载不了sdk(博主也是弄了很久))
  • 下载解压 uniapp 离线SDKApp 离线SDK
    在这里插入图片描述
    到此准备工作结束

3、android 导入 app离线SDK(第二点4下载的压缩包)

  • 解压 app离线SDK
    在这里插入图片描述
    在这里插入图片描述

  • 将UniPlugin-Hello-AS项目导入到Android studio中
    在这里插入图片描述

  • 等待导入编译完成,切换到 project模式。编译完成后的项目结构如下
    在这里插入图片描述

4、新建module(实现我们功能的模块)

  • 新建module
    在这里插入图片描述

  • 选择Android library,填上你的package name (记住不能跟uniapp 打包时候的包名相同(这是个坑,uniapp不兼容)),点击Finish
    在这里插入图片描述

  • 导入导入uniapp-release.aar插件,它是扩展module主要依赖库
    在 App离线SDK 中 —> SDK 文件夹 ----> libs -----> 找到 uniapp-release.aar
    在这里插入图片描述
    把它移动到 之前 android 导入的项目中,切换到 project 目录

在这里插入图片描述

  • 给新建的module (uniplugin_sunmi 是我自己新建模块)添加 依赖
repositories {    flatDir {        dirs 'libs'    }}dependencies {    compileOnly fileTree(dir: 'libs', include: ['*.jar'])    compileOnly fileTree(dir: '../app/libs', include: ['uniapp-v8-release.aar'])    implementation 'androidx.recyclerview:recyclerview:1.0.0'    implementation 'androidx.legacy:legacy-support-v4:1.0.0'    implementation 'androidx.appcompat:appcompat:1.0.0'    implementation 'com.alibaba:fastjson:1.1.46.android'    implementation 'com.facebook.fresco:fresco:1.13.0'    testImplementation 'junit:junit:4.12'}

在这里插入图片描述

如果同步失败,请检查是否出现 下图错误 No signature ofm.android0 is applicable for arg
Try Again Open ‘Build’ View
Show Log in Explorer

在这里插入图片描述
请删除 namespace,再在找到androidManifest.xml 添加包名,再点击 file —> sync project whit Gradle Files 进行同步即可
在这里插入图片描述

  • 新建 java类 (用于实现我们功能的类)
    在这里插入图片描述
    在这里插入图片描述
    去到 AndroidManifest.xml 文件中配置(必须项)
             

在这里插入图片描述
编写模块类(也就是我们新建的类名),编写测试代码
注意:继承UniModule,并添加@UniJSMethod注解(哪个功能方法需要抛出给uniapp使用就加上这个注解

package com.example.uniplugin_sunmi;import com.alibaba.fastjson.JSONObject;import io.dcloud.feature.uniapp.annotation.UniJSMethod;import io.dcloud.feature.uniapp.bridge.UniJSCallback;import io.dcloud.feature.uniapp.common.UniModule;// 一定要继承UniModulepublic class ScanCode extends UniModule {    // 使用UniJSMethod注解,才能使用js调用    @UniJSMethod(uiThread = true)    public void  add (JSONObject json, UniJSCallback callback) {        final int a = json.getInteger("a");        final int b = json.getInteger("b");        callback.invoke(new JSONObject() {{            put("code", 0);            put("result", a + b);        }});    }}

编写结束

  • 在build.gradle(app)中添加uniapp-插件,点击sync now
    在这里插入图片描述
  • 在dcloud_uniplugin.json中新增插件,注意:插件命名会在uniapp中引用
    在这里插入图片描述
  • 给模块打包成插件aar文件
    在这里插入图片描述
    如果没有找到assmbleRelese按钮,可以进行设置
    在这里插入图片描述
    在这里插入图片描述
    打完包即可在build中查看到aar文件
    在这里插入图片描述

5、在uniapp中使用

  • 创建插件目录,配置刚打好的插件
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    package.json 配置
{"name": "sunmi-scan","id": "sunmi-scan","version": "1.0.0","description": "订单的","_dp_type": "nativeplugin","_dp_nativeplugin": {"android": {"integrateType": "aar","plugins": [{"type": "module","name": "sunmi-scan","class": "com.example.uniplugin_sunmi.ScanCode"}], "minSdkVersion": "19"}}}

在这里插入图片描述

  • 使用插件
    在这里插入图片描述
    在这里插入图片描述

添加本地插件

  • 使用插件
    在页面中引入

最后:打包成为基座进行测试(最主要的)

来源地址:https://blog.csdn.net/weixin_39246975/article/details/129078281

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

uniapp 原生安卓开发插件(module),以及android环境本地调试(一)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

uniapp 原生安卓开发插件(module),以及android环境本地调试(一)

uniapp 原生安卓开发插件(module),以及android环境本地调试 1、开发前景 由于uniapp 框架的局限先,有很多功能不能如原生android开发使用顺畅,因此,需要使用插件进行辅助,再由uniapp引入插件,使得功能完善
2023-08-18

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录