uniapp调用jar

2022年6月16日 131点热度 2人点赞 0条评论

前言

此方法为使用uniapp开发前端资源,然后继承进安卓原生项目,达到调用uniapp调用jar的效果。

基于Android Studio进行开发。

本人不懂安卓以及gradle,只是基于搜索引擎以及官方文档得出以下步骤,如果错误或改进之处,望告知。以下步骤亲测可用。

项目搭建

此处可以参考官方文档,说的很详细了

初始项目是通过对官方demo进行裁剪获得(个人尝试过新建项目,未遂)

  1. 下载官方demo

  2. 导入UniPlugin-Hello-AS项目

  3. 删除官方demo模块

    官方模块总共有3个(uniplugin_component、uniplugin_module、uniplugin_richalert)

  • 解除模块绑定关系

    菜单File -- Project Structure -- Modules

    image-20210602112615712

  • 删除模块代码以及uniapp示例工程源码

    image-20210602112838399

  • 删除插件的注册

    参考官方说明

    清空dcloud_uniplugins.json文件中nativePlugins节点下所有内容

  • 删除插件引用

    app包下的build.gradle文件

    ```groovy
    // 删除这三块
    implementation project(':uniplugin_component')
    implementation project(':uniplugin_module')
    implementation project(':uniplugin_richalert')
    ```

  • 删除混淆文件多余配置

    修改app包下proguard-rules.pro文件

    删除末尾的

    ```protobuf
    -keep class uni.** {*;}
    ```

uniapp插件开发

uniapp前端项目

  1. 使用Hbuilder X新建uniapp测试项目(Hbuilder下载地址

    类型选择uni-app 默认模板

  2. index.vue新增测试按钮

    <template>
    <view class="content">
        <div>
            <button type="primary" @click="testSyncFunc">testSyncFunc</button>
        </div>
    </view>
    </template>
    
    <script>
    // 获取 module
    var testModule = uni.requireNativePlugin("TestModule")
    export default {
        onLoad() {
    
        },
        methods: {
            testSyncFunc() {
                // 调用同步方法
                var ret = testModule.testSyncFunc({
                    'name': 'unimp',
                    'age': 1
                })
            }
        }
    }
    </script>
    
  3. 打包

    菜单 发行 -- 原生APP-本地打包 -- 生成本地打包app资源

    到控制台输出的导出路径中,找到resource目录下的文件夹(文件夹名字就是appid),后面有用

插件后端开发

  1. 新增Module

    在Android Studio中,右击项目名称 -- New -- Module,选择Android Library

  2. 按照官方文档修改build.gradle以及新建UniModule(链接

  3. 修改混淆文件

    修改app包下proguard-rules.pro

    dependencies标签里添加implementation project(':xxx')

    xxx就是第一步新建的Module的名字

  4. 引用插件

    修改app包下的build.gradle

  5. 注册插件

    参考文档

    dcloud_uniplugins.json文件中nativePlugins

配置

  1. 生成Android平台签名证书(链接

  2. 生成uniapp离线打包key(参考链接

    Android包名在在app包下的AndroidManifest.xml中最前面可以找到,默认是com.HBuilder.UniPlugin

  3. 填写APPID

    app包下的AndroidManifest.xml搜索android:value

  4. 配置安卓证书

    app包下build.gradle → signingConfigs

    将第一步生成的证书文件(.keystore、.jks)放到app目录下

  5. 插件调试

    参考文档链接

  • 将uniapp前端项目打包生成的资源替换到app -- src -- main -- assets -- app 中

  • 修改app -- src -- main -- assets -- data -- dcloud_control.xml中的appid

最后

  1. 写了半天,还是没有说怎么调用jar包。原生安卓项目怎么用jar就怎么用。

  2. 运行项目进行测试吧

王谷雨

一个苟且偷生的java程序员

文章评论