如何在Flutter Android应用中添加.aar文件作为依赖包?
在Flutter中导入并调用*.aar格式的Android SDK
一、将AAR文件添加到Flutter项目的Android模块
- 打开Flutter项目的
android目录,在app模块下创建libs文件夹(若无则新建) - 将目标
.aar文件复制到android/app/libs目录中
二、配置Android构建脚本(build.gradle)
- 打开
android/app/build.gradle文件 - 在
android块中添加libs目录的依赖引用配置:
android { // 保留原有配置 sourceSets { main { jniLibs.srcDirs = ['libs'] } } }
- 在
dependencies块中添加AAR文件的依赖:
dependencies { // 保留原有依赖 implementation files('libs/your-sdk-file.aar') // 若AAR存在额外依赖,需在此补充对应依赖项 }
注:将your-sdk-file.aar替换为实际的文件名
三、通过MethodChannel实现Flutter与原生的通信
Flutter无法直接调用原生方法,需通过MethodChannel完成跨平台交互:
1. 配置Android原生端的MethodChannel
- 打开
android/app/src/main/kotlin/[你的包名]/MainActivity.kt(Java项目则打开MainActivity.java) - 在
configureFlutterEngine方法中初始化通道,并处理Flutter的调用请求:
示例(Kotlin):
import io.flutter.embedding.android.FlutterActivity import io.flutter.embedding.engine.FlutterEngine import io.flutter.plugin.common.MethodChannel class MainActivity : FlutterActivity() { private val CHANNEL = "com.yourcompany/yoursdk-channel" // 自定义通道标识 override fun configureFlutterEngine(flutterEngine: FlutterEngine) { super.configureFlutterEngine(flutterEngine) MethodChannel(flutterEngine.dartExecutor.binaryMessenger, CHANNEL).setMethodCallHandler { call, result -> when (call.method) { "invokeSdkMethod" -> { // 获取Flutter传递的参数 val inputParam = call.argument<String>("input") // 调用AAR中的目标方法 val sdkResponse = YourSdkClass.targetMethod(inputParam) // 将结果返回给Flutter result.success(sdkResponse) } else -> result.notImplemented() } } } }
注:替换YourSdkClass、targetMethod为AAR中实际的类和方法名,通道标识可自定义
2. 在Flutter Dart代码中调用原生方法
- 在Dart文件中初始化MethodChannel,并封装调用方法:
import 'package:flutter/services.dart'; class SdkConnector { static const MethodChannel _channel = MethodChannel('com.yourcompany/yoursdk-channel'); static Future<String?> invokeSdkMethod(String input) async { try { final String? response = await _channel.invokeMethod('invokeSdkMethod', {'input': input}); return response; } on PlatformException catch (e) { print("SDK调用失败: ${e.message}"); return null; } } }
之后即可在Flutter页面中通过SdkConnector.invokeSdkMethod("测试参数")调用AAR中的方法
四、注意事项
- 确保AAR的架构(如arm64-v8a、armeabi-v7a)与项目Android配置兼容
- 若AAR依赖其他第三方库,需在
build.gradle的dependencies中补充对应依赖,否则会出现编译错误 - 遇到构建问题时,可先执行
flutter clean再重新运行项目,避免缓存干扰
内容的提问来源于stack exchange,提问作者iammdsameer
相关产品推荐
相关产品推荐

