当前位置: 首页 > 编程笔记 >

Android如何在原生App中嵌入Flutter

余阳秋
2023-03-14
本文向大家介绍Android如何在原生App中嵌入Flutter,包括了Android如何在原生App中嵌入Flutter的使用技巧和注意事项,需要的朋友参考一下

本文参考文档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的资料请关注小牛知识库其它相关文章!

 类似资料:
  • 我开始使用atom文本编辑器开发android应用程序。只要我用JS和JSX编写代码,它就可以正常工作。 我必须做的功能是不可用的反应原生,所以我需要写java代码一样https://facebook.github.io/react-native/docs/native-modules-android.html 演讲模块。Java语言 我不想在atom中编写Java代码,因为建议不起作用。我们可以

  • 我正在为我的应用程序使用Phonegap构建。我想知道有没有办法清除我应用程序中的所有应用程序数据(不仅仅是本地存储或缓存)?我在Android应用程序中重新登录时遇到一些问题。当我进行本地存储时。clear(),似乎Android不会清理数据。当时我还尝试清理缓存(使用cordova插件缓存清除插件)。但如果我手动清理应用程序数据(在手机的设置中),效果会很好。否则,当我再次尝试登录时会发生冲突

  • 问题内容: 已经有很多资源,但是我似乎无法使它正常工作。我究竟做错了什么?jar文件位于: http://www.alexandertechniqueatlantic.ca/multimedia/AT-web-presentation- imp.jar 我用来嵌入的代码是: 我正在使用的测试页位于: http://www.alexandertechniqueatlantic.ca/test.php

  • 我在Android2.33中创建了应用程序。我使用了APKV2键,并且我遵循了所有的步骤,但是它仍然显示错误 我包括了google-play-services jar库文件,但它仍然显示未预期停止...

  • 我一直在尝试调试通过平台通道在颤振中调用的本机android代码,调试仅在颤振端进行。在本机android中,执行不会命中断点。应用程序按预期工作,但调试没有。我正在使用Android studio。有人能告诉我如何调试原生android代码吗?

  • 我的目标是在Android中录制视频,录制时内置秒表。 我遵循了格拉菲卡项目的样本,即CameraCaptureActivity。java,他们使用OpenGL 2.0在录制视频的同时录制一小块。他们正在使用以下代码在OpenGL 2.0中绘制块 上面的代码在录制和保存视频时,在视频的左下角绘制白色块。 我想要的是使用OpenGL 2.0在白色框上绘制文本,这样它也可以与视频一起录制。 我不知道O