IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 【java笔记-005】uni-app安卓原生插件,HbuilderX自定义基座打包失败 -> 正文阅读

[移动开发]【java笔记-005】uni-app安卓原生插件,HbuilderX自定义基座打包失败

项目中 uni-app 需要引入安卓java这边原生的插件,在调试过程中,HbuilderX 要求使用自定义基座 才能进行本地运行调试。

之前没有过 原生插件引入的经验,此次遇到的坑如下:

首先,HX生成自定义基座的路径:

运行->运行到手机或模拟器->制作自定义调试基座,界面中使用默认的设置,点击打包,根据提示点击继续打包即可,然后控制台会提示当前排队进度,等待云打包进度即可。

(自定义基座只需要生成成功一次即可,后续原生插件有改动的话,只需要替换uni-app项目中nativeplugins 目录下的对应插件文件即可)

等待打包结束,结果报错:

根据提示的错误日志,查看日志发现如下信息:

看日志意思就是多个依赖包中 都有 相同的 class ,导致冲突。这种情况,一般是原生插件中引入的 多个 java 包中存在了相同的 package 造成的。

那么我排查项目中 build.gradle 的依赖关系,发现:

implementation 'cn.yipianfengye.android:zxing-library:2.1'
implementation 'com.google.zxing:core:3.5.0'

上述两个依赖下,其中?cn.yipianfengye.android:zxing-library:2.1 中也有引入?com.google.zxing,导致后面的?com.google.zxing 就重复了,最终导致冲突,编译失败,打包失败。

解决方案:

(1)第一种,显示指定排除?com.google.zxing

在引入?cn.yipianfengye.android:zxing-library:2.1 的时候,显示指定排除?com.google.zxing,即如下方式引入依赖:

implementation('cn.yipianfengye.android:zxing-library:2.1'){
    //添加,把重复的引用依赖去除掉
    exclude group: 'com.google.zxing'
}
implementation 'com.google.zxing:core:3.5.0'

重新编译原生的插件,并更新 aar 文件到 uni-app 项目中对应的插件目录下,最后重新走一遍自定义调试基座的打包流程。

(2)第二种,删除?implementation 'com.google.zxing:core:3.5.0'

既然重复引用依赖了,那么使用一个不就好了。Android Studio 打开原来的java插件项目,全局搜索一下?com.google.zxing,查看所有文件中 import 的包,是否在??cn.yipianfengye.android:zxing-library:2.1 下 的??com.google.zxing 都能找到。 一般情况是都能找到的,因为就是同一个库。这里以防万一,所以全局搜索看一下确定一下。最后直接删除?build.gradle 中?implementation 'com.google.zxing:core:3.5.0' 这一行,然后重新编译原生的插件,并更新 aar 文件到 uni-app 项目中对应的插件目录下,最后重新走一遍自定义调试基座的打包流程。搞定!

特别注意:如果引用的依赖包中,来源很多路径,那么一定要在?build.gradle(:app) 中添加如下

// 跟 Android 配置节点同级
repositories {
    flatDir {
        dirs 'libs'
    }
    google()
    mavenCentral()
    maven { url "https://jitpack.io" }
    maven { url "https://maven.rongcloud.cn/repository/maven-releases/" }
    jcenter()
}

否则可能出现 HbuilderX 在打包过程中下载不了项目中引用的部分包,错误类似如下:

?

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-05-15 11:39:14  更:2022-05-15 11:40:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 1:54:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码