Flutter引入jar包

首先我想说的是,本人并不是从事安卓开发,但是有一些外力因素最近正好在搞一个flutter项目,需要引入jar包。所以写个总结,为了后面有类似需求的朋友快速解决问题。值得一提的是,本文章可能存在很多解释不到位的地方,毕竟我本身并不是从事安卓开发的,只是记录自己解决问题的过程,仅供参考。

一、如何引入

	Flutter app 想要引入jar包,并不能直接引用,需要借助flutter插件来完成。

大致的方向是这个样子的:
Flutter app -> Flutter plugin -> xxxx.jar

二、Flutter Plugin 引入 jar

2.1 创建Flutter Plugin

在这里插入图片描述
在这里插入图片描述
这一步骤我想说一下,默认下面两个复选框是勾选的,建议不要勾选,因为勾选了用的就是Kotlin开发,我这边用的是Java 开发,所以没有勾选。
在这里插入图片描述
打开 Android 下面的 build.gradle 文件
在这里插入图片描述
选择打开一个新的窗口,用于开发底层逻辑的
在这里插入图片描述

在这里插入图片描述

创建libs文件夹
在这里插入图片描述
添加jar包,然后刷新一下
在这里插入图片描述

然后编写方法内容

在这里插入图片描述
在这里插入图片描述

这时候就可以测试,并使用了,效果我也不截图了。
在这里插入图片描述

三、Flutter App 引入 Flutter Plugin

这一步很简单,直接把Flutter Plugin对应的目录copy到Flutter App中即可。

新建一个plugins目录 把磁盘上整个flutter plugin 目录放进去就可以了。在这里插入图片描述
直接使用就可以了
在这里插入图片描述
在这里插入图片描述

四、总结

本文章参考:https://blog.csdn.net/qq_42483967/article/details/80968754
https://blog.csdn.net/qq_16755585/article/details/91492806

主要也是没时间写,可能过程和细节说的不到位,但是大致的思路和流程我已经说了,有了方向,就不会错。

如果有不理解的地方,在评论区给我留言,看到了会第一时间解答。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Flutter 插件可以集成本地的 AAR 包和 JAR 包。具体步骤如下: 1. 在 Flutter 项目的 `android` 目录下创建 `libs` 目录,将 AAR 包和 JAR 包复制到该目录下。 2. 在 Flutter 项目的 `android/app/build.gradle` 文件中添加如下配置: ``` repositories { flatDir { dirs 'libs' } } dependencies { // 引入 AAR 包 implementation(name: 'your-aar-filename-without-extension', ext: 'aar') // 引入 JAR 包 implementation files('libs/your-jar-filename.jar') } ``` 3. 在 Flutter 插件的 Android 实现类中,使用以下代码加载本地的 AAR 包和 JAR 包: ``` import android.content.Context; import android.content.res.AssetManager; import android.os.Bundle; import android.util.Log; import io.flutter.embedding.android.FlutterActivity; import io.flutter.embedding.android.FlutterActivityLaunchConfigs; import io.flutter.embedding.android.FlutterView; import io.flutter.embedding.engine.FlutterEngine; import io.flutter.plugin.common.MethodChannel; import org.json.JSONObject; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; public class MyFlutterActivity extends FlutterActivity { private static final String CHANNEL = "com.example.myapplication/my_channel"; @Override public void configureFlutterEngine(FlutterEngine flutterEngine) { super.configureFlutterEngine(flutterEngine); // 加载 AAR 包中的类 MyAARClass myAARClass = new MyAARClass(); // 加载 JAR 包中的类 MyJARClass myJARClass = new MyJARClass(); // 注册 MethodChannel new MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), CHANNEL) .setMethodCallHandler( (call, result) -> { if (call.method.equals("myMethod")) { // 调用 AAR 包中的方法 String aarResult = myAARClass.myMethod(); // 调用 JAR 包中的方法 String jarResult = myJARClass.myMethod(); // 返回结果 JSONObject jsonObject = new JSONObject(); try { jsonObject.put("aarResult", aarResult); jsonObject.put("jarResult", jarResult); } catch (Exception e) { e.printStackTrace(); } result.success(jsonObject.toString()); } else { result.notImplemented(); } } ); } } ``` 这样,就可以在 Flutter 插件中使用本地的 AAR 包和 JAR 包了。注意,在使用 JAR 包时,需要将该包放在 `libs` 目录下,并在 `build.gradle` 文件中添加依赖。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值