Android如何在原生App中嵌入Flutter
程序员文章站
2024-03-30 20:54:51
本文参考文档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
第二步:同步flutter module依赖
进入到新生成的flutter module目录下的.android目录下,命令是cd .android/
,然后执行gradlew flutter:assembledebug
,mac下./gradlew flutter:assembledebug
这过程根据网络情况,可能有点长。
结束之后在.android/flutter/build/outputs/aar/
目录下会生成flutter-debug.aar
第三步:设置jdk版本
在app的build.gradle文件中加入:
compileoptions { sourcecompatibility 1.8 targetcompatibility 1.8 }
第四步:依赖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的资料请关注其它相关文章!