欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android如何在原生App中嵌入Flutter

程序员文章站 2022-03-23 16:41:32
本文参考文档add flutter to existing apps。首先有一个可以运行的原生项目第一步:新建flutter moduleterminal进入到项目根目录,执行flutter crea...

本文参考文档add flutter to existing apps

首先有一个可以运行的原生项目

第一步:新建flutter module

terminal进入到项目根目录,执行flutter create -t module ‘module名字'例如:flutter create -t module flutter-native

执行完毕,就会发现项目目录下生成了一个module

Android如何在原生App中嵌入Flutter

第二步:同步flutter module依赖

进入到新生成的flutter module目录下的.android目录下,命令是cd .android/,然后执行gradlew flutter:assembledebug,mac下./gradlew flutter:assembledebug

这过程根据网络情况,可能有点长。

结束之后在.android/flutter/build/outputs/aar/目录下会生成flutter-debug.aar

Android如何在原生App中嵌入Flutter

第三步:设置jdk版本

在app的build.gradle文件中加入:

compileoptions { sourcecompatibility 1.8 targetcompatibility 1.8 }

Android如何在原生App中嵌入Flutter

第四步:依赖flutter module

settings.gradle中加入

include ':app'
setbinding(new binding([gradle: this]))
evaluate(new file(
  settingsdir.parentfile,
  'flutternativeapplication/flutter_native/.android/include_flutter.groovy'
))

注意:最后一个参数最好写全路径!

在app/build.gradle中

dependencies {
 ……
 implementation project(':flutter')
}

到此准备过程结束,写代码测试一下,我使用的是fragment方式。当然也有view的方式。

mainactivity.kt ↓

class mainactivity : appcompatactivity() {

 override fun oncreate(savedinstancestate: bundle?) {
  super.oncreate(savedinstancestate)
  supportrequestwindowfeature(window.feature_no_title)
  setcontentview(r.layout.activity_main)
  val tx = supportfragmentmanager.begintransaction()
  tx.replace(r.id.content, flutter.createfragment("route"))
  tx.commit()
 }
}

activity_main.xml ↓

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.constraintlayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context=".mainactivity">

 <framelayout
  android:id="@+id/content"
  android:layout_width="match_parent"
  android:layout_height="match_parent"></framelayout>

</android.support.constraint.constraintlayout>

Android如何在原生App中嵌入Flutter

以上就是android如何在原生app中嵌入flutter的详细内容,更多关于android 原生app中嵌入flutter的资料请关注其它相关文章!