flutter产物以aar形式嵌入android原生工程

这篇具有很好参考价值的文章主要介绍了flutter产物以aar形式嵌入android原生工程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

以前做的项目中,flutter都是作为module嵌入原生工程中,新公司项目却是以aar形式嵌入android工程,这种优点是原生工程不必配置flutter环境也能跑了,这里记录一下简单步骤。

创建一个flutter module

通过android studio创建一个flutter module,注意不要创建成flutter工程了,因为工程没法打包成aar。
flutter产物以aar形式嵌入android原生工程,flutter,android
创建完成后,编写代码,然后在终端输入命令

flutter build aar

编译完成,可以看到输出

 Built build/host/outputs/repo.

产物就在我们项目的build目录中
flutter产物以aar形式嵌入android原生工程,flutter,android
终端还有其他一些比较重要的输出,一起复制上来

Consuming the Module
  1. Open <host>/app/build.gradle
  2. Ensure you have the repositories configured, otherwise add them:

      String storageUrl = System.env.FLUTTER_STORAGE_BASE_URL ?: "https://storage.googleapis.com"
      repositories {
        maven {
            url '/Users/yy/AndroidStudioProjects/flutter_module1/build/host/outputs/repo'
        }
        maven {
            url "$storageUrl/download.flutter.io"
        }
      }

  3. Make the host app depend on the Flutter module:

    dependencies {
      debugImplementation 'com.ali.flutter_module1:flutter_debug:1.0'
      profileImplementation 'com.ali.flutter_module1:flutter_profile:1.0'
      releaseImplementation 'com.ali.flutter_module1:flutter_release:1.0'
    }


  4. Add the `profile` build type:

    android {
      buildTypes {
        profile {
          initWith debug
        }
      }
    }

其实这就是官方告诉我们如何将flutter产物嵌入原生工程中,这里先创建一个原生工程,然后打开app/build.gradle,添加上

    repositories {
        maven {
//            这里是配置flutter产物位置
            url '/Users/yy/AndroidStudioProjects/flutter_module1/build/host/outputs/repo'
        }
        maven {
//            这里配置flutter下载地址,gradle自己去下载flutter引擎和源码
            url 'http://download.flutter.io'
        }
    }

在较新的gradle版本中,会要求将上面的maven 配置到settings.gradle文件中。

pluginManagement {
    repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        maven {
            url '/Users/yy/Downloads/test/so/flutter_module/build/host/outputs/repo'
        }
        maven {
            url "https://storage.googleapis.com/download.flutter.io"
        }
    }
}

上面的产物可以将repo目录复制到我们android工程中,上面我没有复制就直接用了。
接着配置依赖

    dependencies {
      debugImplementation 'com.ali.flutter_module1:flutter_debug:1.0'
      profileImplementation 'com.ali.flutter_module1:flutter_profile:1.0'
      releaseImplementation 'com.ali.flutter_module1:flutter_release:1.0'
    }

根据上面输出中的步骤,继续添加profile build type

    android {
      buildTypes {
        profile {
          initWith debug
        }
      }
    }

点击build项目,就会自动去下载flutter引擎,源码了,编译完成,我们创建一个activity来测试一下

public class FlutterDemoActivity extends FlutterActivity {
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
        super.onCreate(savedInstanceState, persistentState);
    }
}

启动这个页面,就可以看到flutter页面了。

如果我们的flutter工程中引入了第三方项目,我们还可以借助fat-aar来打包项目,它可以将flutterEngine等一起打包进去,具体使用可以看官方文档。aar这种方式也是可以调试的,将flutter项目attach到正在运行的应用上就可以了。文章来源地址https://www.toymoban.com/news/detail-726151.html

到了这里,关于flutter产物以aar形式嵌入android原生工程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • flutter开发实战-MethodChannel实现flutter与原生Android双向通信

    flutter开发实战-MethodChannel实现flutter与原生Android双向通信 最近开发中需要原生Android与flutter实现通信,这里使用的MethodChannel MethodChannel:用于传递方法调用(method invocation)。 通道的客户端和宿主端通过传递给通道构造函数的通道名称进行连接 一个应用中所使用的所有通道名称

    2024年02月13日
    浏览(40)
  • 在Android原生项目中 创建 Flutter模块

    应用场景: 在已有的 Android原生项目中,引入Flutter模块,摸索了两天,终于给整出来了; 如果是新项目 ,最好直接创建Flutter项目,然后在Fluter的 android / ios目录中,写原生代码; 本文除了讲解 Android原生如何创建Flutter模块外,还会演示在使用 Gradle 高版本 和 低版本  时可

    2024年01月19日
    浏览(43)
  • Flutter 调用原生(Android)方法以及数据传输

    flutter是一个UI框架,有许多方法和功能只能靠原生自己来调用,但是我们怎么通过flutter去间接调用呢?官方给出了两种方法 在平台通道之间进行消息传递: 注:消息和响应以异步的形式进行传递,以确保用户界面能够保持响应。 flutter端: 然后找到android工程,打开MainActi

    2024年02月10日
    浏览(53)
  • 一统天下 flutter - 插件: flutter 使用 android 原生控件,并做数据通信

    源码 https://github.com/webabcd/flutter_demo 作者 webabcd 示例如下: libpluginplugin2.dart androidappsrcmainkotlincomexampleflutter_demoMainActivity.kt androidappsrcmainkotlincomexampleflutter_demoMyFlutterPlugin2.kt androidappsrcmainkotlincomexampleflutter_demoMyView.kt androidappsrcmainreslayoutview_my.xml 源码 http

    2024年02月03日
    浏览(54)
  • Flutter 和 Android原生(Activity、Fragment)相互跳转、传参

    本文主要讲解 Flutter 和 Android原生之间,页面相互跳转、传参, 但其中用到了 两端相互通信 的知识, 非常建议 先看完这篇 讲解通信的文章 : Flutter 与 Android原生 相互通信:BasicMessageChannel、MethodChannel、EventChannel_flutter eventchannel methodchannel basemessagechan-CSDN博客 当前案例 Flu

    2024年02月22日
    浏览(46)
  • Flutter 与 原生交互(Android),靠着这份900多页的PDF面试整理

    private static final String TAG = “FlutterPluginBasicTest”; public static String CHANNEL = “com.mmd.flutterapp/plugin”; static BasicMessageChannel messageChannel; public static void registerWith(PluginRegistry.Registrar registrar) { messageChannel = new BasicMessageChannel(registrar.messenger(),CHANNEL,StandardMessageCodec.INSTANCE); FlutterPluginBas

    2024年04月14日
    浏览(49)
  • Uniapp和原生aar混合使用初体验

    一、编写原生代码,获取aar包,本例直接使用官方demo 1.首先下载官方demo:Android 离线SDK - 正式版 选择百度网盘,下载官方资料,解压后如下图 2.使用Android studio 打开UniPlugin-Hello-AS工程,该工程可以演示UNIAPP如何调用原生api 此处是我把资料中的汉字目录名称改为uniapp了 3.生成

    2023年04月27日
    浏览(24)
  • Android Studio打包AAR

    依赖的Android Studio版本为4.2.2 更高的Android Studio版本使用方法可能有所不同,gradle的版本和gradle plugins的版本都会影响使用方式。 基于此,本文只能作为参考,而不能作为唯一答案,如果要完全依赖本文,则Android Studio版本也需要安装成4.2.2. Android AAR文件是Android Archive文件的缩

    2024年02月04日
    浏览(57)
  • Android修改aar并重新打包

    目录 一.修改 aar 需要用到的工具(就一个工具,使用方式非常简单,别担心) 二.修改 aar 代码层业务逻辑 三.修改 aar layout 布局文件 四.附上recyclerview aar修改工程源码 注:(下面工具,点击名称可进入下载链接,如果链接失效,请百度搜索下载) Bandizip ,一款非常好用的解

    2024年02月15日
    浏览(37)
  • Android引入aar包的方法

    网上参考了许多引入aar包的方法是: 第一步:在build.gradle中的android{}外层添加如下代码 第二步:在dependencies中添加 但是上述方法中的flatDir函数在较新的Gradle版本中移除了,会出现报错,而且官方也不推荐使用上述方法。 第一步:在Module中新建lib文件夹(如果不存在lib文件

    2024年02月21日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包