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

uniapp导入(android)jar

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

uniapp导入(android)jar

官方文档:开发者须知 | uni小程序SDK

1.下载对应示例代码及工具

2.项目准备(将下载的项目SDK解压导入Android Studio)

点击android-project这样可以看到其他文件

示例删除

 

把插件的注册都删了

3.新建module(用于导入jar并生成插件提供uniapp使用)

 

 创建完会报错

 

 找到module下的AndroidManifest.xml添加package="java下的包路径"

 注释 namespace点击try again,发现成功了

libs下可以放需要导入的jar

module-->build.gradle下引用app的jar和自己导入的jar

compileOnly fileTree(include: ['uniapp-v8-release.aar'], dir: '../app/libs')implementation fileTree(dir: '../uniplugin_scan/libs', include: ['*.aar', '*.jar'], exclude: [])

 导入依赖:

compileOnly 'androidx.recyclerview:recyclerview:1.2.1'compileOnly 'androidx.legacy:legacy-support-v4:1.0.0'compileOnly 'com.alibaba:fastjson:1.1.46.android'

点击右上角 Sync Now刷新依赖

4.编写插件类

 ScanModule

package com.example.uniplugin_scan;import android.content.Context;import com.alibaba.fastjson.JSONObject;import com.huayusoft.barcodeadmin.IScanCallBack;import com.raindi.scanner.RDManager;import com.taobao.weex.bridge.JSCallback;import io.dcloud.feature.uniapp.annotation.UniJSMethod;import io.dcloud.feature.uniapp.common.UniModule;public class ScanModule extends UniModule {            @UniJSMethod(uiThread = true)    public void tips(JSONObject options, JSCallback callback){        if(callback != null) {            JSONObject data = new JSONObject();            data.put("name", "调用插件成功");            //回调返回            callback.invoke(data);        }    }        @UniJSMethod(uiThread = true)    public void scan(JSONObject options, JSCallback callback){        if(callback != null) {            JSONObject data = new JSONObject();            //导入jar包的回调定义            IScanCallBack callback1 =new IScanCallBack.Stub() {                @Override                public void onSuccess(final String bean) {                    //接收条码服务返回的数据                    data.put("name", bean);                    System.out.println(bean);                    callback.invoke(data);                }                @Override                public void onFiled(int errorCode) {                    //条码服务出错的数据                    data.put("name", "服务出错");                }            };            //创建扫描对象            RDManager instance = RDManager.getInstance();            //获得窗口            Context context = this.mWXSDKInstance.getContext();            //绑定扫描            boolean b = instance.bindScannerService(context,callback1 );            //初始化扫描            instance.init(callback1);            //开启电源            instance.powerOn();            //开始扫描            instance.doScan();        }    }    }

插件注册app--》class="lazy" data-src--》asset-->dcloud_uniplugins.json

{  "nativePlugins": [    {      "plugins": [        {          "type": "module",          "name": "Uni-Plugin-Scan",          "class": "com.example.uniplugin_scan.ScanModule"        }      ]    }  ]}

 依赖添加插件 app--》build.gradle

 implementation project(':uniplugin_scan')

 5.编写Uniapp

新建一个项目选择普通模板

编写pages下的index.vue

6.生成本地资源放入android项目中

 找到资源文件

 

 复制到apps下

 7.注册Android Key

这边本人是看这边博客的,注册key的照着一步步写就可以了

uni-app官方demo(Android sdk):未配置appkey或配置错误。(uni原生插件开发,Android插件开发)_break妖的博客-CSDN博客_未配置appkey或配置错误

本人的配置 ,配置完点击右上角 Sync Now刷新gradle (如出现未配置app key,请检查下面这几处填写是否有误!!!!!)

 签名填写

 

8.运行

插上数据线连接手机,手机设置usb调试允许,android studio会识别到设备,这样就可以在android直接运行了

 如果出现报错请检查build.gradle配置(特别是版本和依赖),下面是本人的build.gradle配置

app build:gradle

apply plugin: 'com.android.application'android {    compileSdkVersion 33    buildToolsVersion '28.0.3'    defaultConfig {        applicationId "com.android.UniPlugin"        minSdkVersion 21        targetSdkVersion 33 //建议此属性值设为21 io.dcloud.PandoraEntry 作为apk入口时   必须设置 targetSDKVersion>=21 沉浸式才生效        versionCode 1        versionName "1.0"        multiDexEnabled true        ndk {            abiFilters 'x86','armeabi-v7a'        }        compileOptions {            sourceCompatibility JavaVersion.VERSION_1_8            targetCompatibility JavaVersion.VERSION_1_8        }    }    signingConfigs {        config {            keyAlias '__uni__****请填写自己的别名'            keyPassword 'key的密码'            storeFile file('对应的签名文件')            storePassword 'stroe密码'            v1SigningEnabled true            v2SigningEnabled true        }    }    buildTypes {        release {            signingConfig signingConfigs.config            zipAlignEnabled true            minifyEnabled true            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }        debug {            signingConfig signingConfigs.config            zipAlignEnabled true            minifyEnabled true            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }    //使用uniapp时,需复制下面代码        aaptOptions {        additionalParameters '--auto-add-overlay'        //noCompress 'foo', 'bar'        ignoreAssetsPattern "!.svn:!.git:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~"    }    }repositories {    flatDir {        dirs 'libs'    }}dependencies {    implementation fileTree(dir: 'libs', include: ['*.jar'])    implementation fileTree(dir: 'libs', include: ['*.aar'])    implementation 'androidx.legacy:legacy-support-v4:1.0.0'    implementation 'androidx.appcompat:appcompat:1.0.0'        implementation 'androidx.recyclerview:recyclerview:1.0.0'    implementation 'com.facebook.fresco:fresco:1.13.0'    implementation "com.facebook.fresco:animated-gif:1.13.0"        // 基座需要,必须添加    implementation 'com.github.bumptech.glide:glide:4.9.0'    implementation 'com.alibaba:fastjson:1.1.46.android'    // 添加uni-app插件    implementation project(':uniplugin_scan')//    implementation project(':uniplugin_component')//    implementation project(':uniplugin_module')//    implementation project(':uniplugin_richalert')}

 module(uniplugin_scan) build.gradle

plugins {    id 'com.android.library'}android {    compileSdk 29//    namespace 'com.example.uniplugin_scan'//    compileSdkVersion 32    defaultConfig {        minSdkVersion 19        targetSdkVersion 33        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"        consumerProguardFiles "consumer-rules.pro"    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'        }    }    compileOptions {        sourceCompatibility JavaVersion.VERSION_1_8        targetCompatibility JavaVersion.VERSION_1_8    }    buildToolsVersion '28.0.3'}dependencies {    implementation 'androidx.appcompat:appcompat:1.4.1'    implementation 'com.google.android.material:material:1.5.0'    testImplementation 'junit:junit:4.13.2'    androidTestImplementation 'androidx.test.ext:junit:1.1.3'    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'    //必须导入的依赖    compileOnly 'androidx.recyclerview:recyclerview:1.1.0'    compileOnly 'androidx.legacy:legacy-support-v4:1.0.0'    compileOnly 'com.alibaba:fastjson:1.1.46.android'    //导入jar    compileOnly fileTree(include: ['uniapp-v8-release.aar'], dir: '../app/libs')    implementation fileTree(dir: '../uniplugin_scan/libs', include: ['*.aar', '*.jar'], exclude: [])}

通过对比修改,不出意外是可以运行的。

手机运行成功截图

扫描

9.将andorid项目打包用uniapp调用

 

 在项目文件夹里搜索aar

把aar复制到下面的android文件夹下

 

 配置package.json(用记得删注释,这个不能写错,写错会导致后面插件识别不到)

{"name": "AndroidScan", //插件名    "id": "Uni-Plugin-Scan", //id    "version": "0.0.2",    "description": "安卓条码扫描",    "_dp_type":"nativeplugin",    "_dp_nativeplugin":{        "android": {            "plugins": [                {                    "type": "module",                    "name": "Uni-Plugin-Scan", //插件名称一般和id相同或以id为前缀                    "class": "com.example.uniplugin_scan.ScanModule" //andorid插件对应类的路径                }            ],"integrateType": "aar" //类型分为jar和aar}}}

插件配置

 

 10.uniapp运行

自定义基座---》直接打包

 

 运行就行了,如果没有设备刷新试试,还是没有请检查手机是否连接上电脑,是否开启可调试,是否是文件传输。

 运行成功!!!和上面的android运行结果是一样的,这里就不截图了。

更多细节请参考官方文档:开发者须知 | uni小程序SDK

来源地址:https://blog.csdn.net/ysfengshu/article/details/128189362

免责声明:

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

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

uniapp导入(android)jar

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

下载Word文档

猜你喜欢

android怎么导入jar包

要在Android项目中导入.jar文件,可以按照以下步骤进行操作:1. 在项目的根目录下创建一个名为`libs`的文件夹(如果已经存在则不需要创建)。2. 将.jar文件复制到`libs`文件夹中。3. 在Android Studio中,
2023-09-23

android studio如何导入jar包

要导入jar包到Android Studio中,可以按照以下步骤操作:1. 在项目的根目录下,创建一个libs文件夹(如果还没有)。2. 将你的jar包文件复制到libs文件夹中。3. 在Android Studio中,右键点击该jar包文
2023-09-26

android导入第三方jar包报错 如何正确导入jar包

在android上导入zxing.jar包,总是报错: Could not find class 'com.google.zxing.MultiFormatWriter', referenced from method com.changy
2022-06-06

Android 详解Studio引用Library与导入jar

在Android项目开发过程中,Android Studio是一款非常强大的开发工具。到底有多强大,用了你就知道了。 本文我将介绍Studio引用Library开源项目与导入jar方法。 一、引用Library 1:选择你的项目,点击导航栏
2022-06-06

idea怎么导入jar包

本篇内容主要讲解“idea怎么导入jar包”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“idea怎么导入jar包”吧!通过添加Libraries的方式引入:1、首先在根目录下创建一个 libs
2023-07-05

eclipse怎么导入jar包

在Eclipse中导入JAR包有以下几种方法:方法一:通过“Build Path”导入1. 在Eclipse中打开你的项目。2. 右键点击项目,选择“Properties”。3. 在弹出的窗口中,选择“Java Build Path”。4.
2023-09-27

jar包如何导入eclipse

将jar包导入Eclipse的方法如下:1. 打开Eclipse,选择要导入jar包的工程。2. 右键点击工程名,选择 "Properties"。3. 在弹出的对话框中,选择 "Java Build Path"。4. 在 "Java Bui
2023-08-25

如何在 Java 中导入外部 jar 包?(java怎么导入外部jar包)

在Java开发中,导入外部jar包是一个常见的操作,它允许我们使用其他开发者编写的库和功能。以下是在Java中导入外部jar包的详细步骤:一、确定jar包的来源首先,你需要确定要导入的外部jar包的来源。
如何在 Java 中导入外部 jar 包?(java怎么导入外部jar包)
Java2024-12-15

如何在 Java 中导入 jar 包?(详细教程)(java如何导入jar包)

在Java开发中,导入jar包是一个常见的操作,它允许我们使用其他开发者编写的代码和库。以下是在Java中导入jar包的详细步骤:一、了解jar包的作用和来源jar包(JavaArchive)是一种用于聚
如何在 Java 中导入 jar 包?(详细教程)(java如何导入jar包)
jarJava2024-12-15

maven如何批量导入jar包

Maven可以使用以下两种方法批量导入jar包:1. 使用Maven的依赖管理功能,将所有需要导入的jar包作为依赖项添加到项目的pom.xml文件中。示例:```xml```2. 如果所有的jar包都位于本地仓库中,可以使用Maven的批
2023-08-08

Maven怎么导入本地jar包

这篇文章主要讲解了“Maven怎么导入本地jar包”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Maven怎么导入本地jar包”吧!1、 在本地maven仓库安装本地jar包 mave
2023-07-02

java项目如何导入jar包

java项目中导入jar包的方法:方法一:1、在java项目中新建一个文件夹lib,并将需要导入的jar包复制到lib文件夹中2、选中servlet-api.jar,右键点击“Build Path”--"Add to Build Path "之后该jar包就已
java项目如何导入jar包
2020-01-19

eclipse怎么导入外部jar包

要在Eclipse中导入外部JAR包,可以按照以下步骤进行操作:1. 将需要导入的JAR包复制到项目的文件夹中(如lib文件夹)。2. 在Eclipse中右键单击项目,选择“Properties”。3. 在弹出的窗口中,选择“Java Bu
2023-08-18

jquery导入jar包的三种方法

在Web开发中,如果要使用jQuery这个JavaScript库,一般有两种方式:一种是通过CDN引入jQuery的JavaScript文件,另一种是把jQuery的JavaScript文件下载到本地,然后在HTML页面中通过标签引入。但是,如果我们希望在Java Web应用中使用jQuery,就需要将jQuery的JavaScript文件打包成.jar包导入到
2023-05-14

eclipse如何导入数据库jar包

要在Eclipse中导入数据库的JAR包,可以按照以下步骤进行操作:1. 在Eclipse中打开你的项目。2. 右键点击项目,选择"Build Path(构建路径)",然后选择"Configure Build Path(配置构建路径)"。3
2023-10-07

eclipse如何把jar包导入项目

将jar包导入Eclipse项目有两种方法:方法一:手动导入1. 在Eclipse的项目资源管理器中,右键点击你的项目,选择"Properties"。2. 在弹出的对话框中选择"Java Build Path"。3. 在"Libraries
2023-09-15

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录