You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Flutter生成的Android库(.aar)分发给第三方Android应用?

Flutter模块打包可分发AAR及第三方Android应用集成方案

一、生成可分发的Flutter AAR

  1. 将你的Flutter模块单独抽离维护(如果之前嵌在现有Android项目中,需先拆分为独立模块)
  2. 进入Flutter模块根目录,执行release版打包命令:
    flutter build aar --no-debug --no-profile
    
    打包完成后,会在build/host/outputs/repo生成完整的本地Maven仓库结构——包含Flutter模块AAR、依赖的Flutter引擎AAR及插件AAR,必须分发整个repo目录,单传单个AAR会导致第三方应用缺失依赖。

二、分发给第三方的两种方式

  • 离线分发:直接打包repo目录发送给对方,让其通过本地路径引用
  • 远程分发:将repo内的资源上传至私有Maven仓库(如Nexus、Artifactory),给对方提供仓库URL即可

三、第三方应用集成步骤

  1. 配置Maven仓库:在第三方项目的settings.gradle中添加仓库地址:
    dependencyResolutionManagement {
        repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
        repositories {
            google()
            mavenCentral()
            // 离线场景填本地repo绝对路径,远程场景填仓库URL
            maven { url '/Users/xxx/Documents/flutter_module/build/host/outputs/repo' }
        }
    }
    
  2. 添加依赖:在应用模块的build.gradle中引入Flutter模块依赖,具体的groupId、artifactId、version可在你打包时的控制台输出中获取:
    dependencies {
        implementation 'com.yourcompany:flutter_module:flutter_release:1.0.0'
        // 若模块用到Flutter插件,需同步引入对应release版依赖,例如:
        // implementation 'io.flutter.plugins.sharedpreferences:flutter_sharedpreferences_release:2.2.0'
    }
    
  3. 初始化Flutter引擎:在第三方应用的Application类中预初始化引擎,避免启动Flutter页面卡顿:
    import io.flutter.embedding.engine.FlutterEngine;
    import io.flutter.embedding.engine.FlutterEngineCache;
    import io.flutter.embedding.engine.dart.DartExecutor;
    
    public class App extends Application {
        @Override
        public void onCreate() {
            super.onCreate();
            FlutterEngine engine = new FlutterEngine(this);
            engine.getDartExecutor().executeDartEntrypoint(
                DartExecutor.DartEntrypoint.createDefault()
            );
            FlutterEngineCache.getInstance().put("cached_flutter_engine", engine);
        }
    }
    
  4. 启动Flutter页面:
    startActivity(
        FlutterActivity.withCachedEngine("cached_flutter_engine")
            .build(this)
    );
    

四、关键注意事项

  • 第三方应用的Flutter SDK版本必须与你打包模块时的版本完全一致,否则会出现引擎兼容性问题
  • 模块中用到的Android权限,需在第三方应用的AndroidManifest.xml中同步声明
  • 打包前务必测试集成流程,确保所有依赖都包含在repo目录中,避免遗漏插件或引擎资源

内容的提问来源于stack exchange,提问作者vishnu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 15:31:12