安卓原生插件开发+打包aar插件+uniapp原生插件打包

您所在的位置:网站首页 uniapp使用第三方支付sdk 安卓原生插件开发+打包aar插件+uniapp原生插件打包

安卓原生插件开发+打包aar插件+uniapp原生插件打包

2024-01-10 00:54| 来源: 网络整理| 查看: 265

原生插件开发官方链接: 开发者须知 | uni小程序SDK

注意点:

1.  第三方sdk初始化如图所示

 也可以在TestModule中开发initSdk方法,uniapp调用时自行初始化

2.   aar插件实际应用时,经历了三个报错 (1) java.lang.reflect.InvocationTargetException

       这个报错是因为打包没有暴露出该方法或者TestModule没有定义该方法,也可能是sdk初始化未完成,导致sdk中的某些类没有加载

(2) java.lang.NoClassDefFoundError

        这个报错是因为打包时没有将第三方sdk的依赖打进aar包,打开aar包会发现少了libs目录或者少了相关依赖jar/aar包

(3) checkReleaseDuplicateClasses

        这个报错原因是打包的aar插件依赖和项目本身其他的插件依赖有重复,需要根据报错信息,挨个排除依赖,如图所示,我的依赖包有三个发生了重复依赖

报错信息如图所示:

 

3.如何将gradle依赖打进aar的libs目录?

可以使用 'com.kezong.fat-aar'  打包,具体方式:

1 . 在根目录build.gradle中添加依赖 dependencies {     classpath 'com.android.tools.build:gradle:4.2.2'     //添加插件     classpath 'com.github.kezong:fat-aar:1.3.6' }2. 在TestModule(插件module)目录下build.gradle中第一行添加         apply plugin: 'com.kezong.fat-aar'

然后依赖中如下所示添加,

embed 'com.google.protobuf:protobuf-java:2.6.1' implementation 'com.squareup.okhttp3:okhttp:4.8.1' embed 'com.google.code.gson:gson:2.8.6' implementation 'com.squareup.okio:okio:2.8.0' implementation 'com.android.support:support-annotations:26.1.0' embed 'com.loopj.android:android-async-http:1.4.9' embed "android.arch.persistence.room:runtime:1.1.1" embed "android.arch.lifecycle:extensions:1.1.1"

embed 引用的依赖在打包aar插件时,会打进libs目录

4. uniapp调试不打印日志怎么办?

本地配置adb环境变量,adb目录 示例: D:\AndroidSdk\platform-tools

配置好环境变量后使用如下命令:

1、adb connect 192.168.10.31

2、adb devices 查看连接信息 

3、adb logcat >D:outlog.txt  抓取日志保存

4、adb logcat|find "查看" >D:outlog.txt  过滤日志

5、adb logcat -v time 查看实时日志

6、adb logcat -v time >D:outlog.txt 保存日志



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3