android Native和 Flutter 通信

2023-11-13

android 工程集成Flutter

集成方式主要是两种
1、 工程的方式集成

首先创建android,和flutter工程,工程路径必须在同一路径下:
在这里插入图片描述

1、在android 工程的settings.gradle 文件中添加:

rootProject.name = "flutterDemo"
include ':app'
// 添加如下代码
setBinding(new Binding([gradle: this]))
evaluate(new File(
  settingsDir,
  '../flutter_module/.android/include_flutter.groovy'
))

2、app的 build.gradle

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation 'androidx.core:core-ktx:1.3.1'
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.material:material:1.2.1'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
    // 添加依赖
    implementation project(path: ':flutter')
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}

3、 清单文件 ndroidManifest.xml 中添加
集成完,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.flutterdemo">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.FlutterDemo">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <!--    添加activity     -->
        <activity
            android:name="io.flutter.embedding.android.FlutterActivity"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:theme="@style/Theme.FlutterDemo"
            android:windowSoftInputMode="adjustResize" >
        </activity>

    </application>

</manifest>

4、 添加跳转测试:

package com.example.flutterdemo

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import io.flutter.embedding.android.FlutterActivity

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        findViewById<View>(R.id.btn).setOnClickListener {
            var intent =  FlutterActivity.createDefaultIntent(MainActivity@ this)
            startActivity(intent)
        }
    }
}

5、 集成完后效果:
在这里插入图片描述

2、 aar方式集成

1、使用命令build aar : flutter build aar

qitmac000903@MacBook-Pro-3 flutter_module % flutter build aar

									
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android Native和 Flutter 通信 的相关文章

  • 关闭 Android 中的飞行模式

    如果 num gt 50 我想关闭飞行模式 我实现了这段代码 来自在 Android 中切换飞行模式 https stackoverflow com questions 5533881 toggle airplane mode in and
  • Android中如何使用洪水填充算法?

    我是Android编程新手 最近尝试编写一个简单的应用程序 仅供练习 在这个中 我想在用户点击时为图像着色 但我不知道如何开始 我读过不同的主题 其中提到使用 洪水填充 算法 我在网上找到了它 但我不知道如何将它放入我的简单应用程序中 我找
  • 使用 Google Places Autocomplete API 的 REQUEST_DENIED 响应

    我正在开发 Android 应用程序 它使用谷歌的地点自动完成 API 当尝试点击以下网址时 我得到的答复如下 预测 状态 REQUEST DENIED 我从下面的链接获得了 API 密钥Google API 控制台 http code g
  • 用颤动画布在形状上切一个洞

    如何使用颤动画布在形状上 切一个洞 我有一组相当复杂的形状 看起来像现实世界的物体 该物体上有一个圆角矩形形状的孔 我真的很想从形状中减去 RRect 但我找不到任何有关如何执行此操作的信息 canvas clipRRect myRRect
  • 配置根项目“firebase_auth”时出现问题

    my error 我无法构建 apk 发布文件 我完成了应用程序一段时间 没有出现错误 几天后 我在构建应用程序时收到此错误 请告诉我如何摆脱它 我尝试了 4 个小时 什么也没得到 FAILURE Build failed with an
  • SQLite支持android的数据类型有哪些

    谁能告诉我 SQLITE 中支持 ANDROID 的数据类型列表 我想确认 TIME 和 DATE 数据类型 这里有一个list http www sqlite org datatype3 htmlSQLite 的数据类型 支持时间和日期间
  • 监听什么来检测 Android 中的请勿打扰模式更改?

    我希望我的应用程序在手机设置为请勿打扰模式 仅限闹钟 仅限优先级或完全静音 时显示通知 通过聆听 这效果非常好android media RINGER MODE CHANGED在快速设置中检查此模式并在已选择的选项卡中选择模式时 但是 当选
  • 获取可以共享数据的应用程序列表

    此代码显示默认共享对话框 Intent sharingIntent new Intent Intent ACTION SEND sharingIntent setType text html sharingIntent putExtra a
  • 从多个选项卡中的编辑文本字段获取文本

    我正在尝试创建一个使用选项卡作为输入表单的 Android 应用程序 基本上 我希望对其进行设置 以便用户可以在一个选项卡上输入一些信息 然后提交该信息 或者转到另一个选项卡并输入更多信息 然后从两个选项卡提交信息 我正在使用操作栏和片段来
  • 没有调用addToBackStack,片段仍然添加到backstack,为什么?

    我正在制作我的片段更换器助手类 但我遇到了一些问题 我称之为FragmentChanger 它有一个fragmentContainer 这是一个ViewGroup 其中包含我想展示的所有片段 我已经做了我自己的replace Fragmen
  • Android模拟器分配内存失败8

    当我尝试从 Eclipse 运行 WXGA800 模拟器时 出现如下错误 Failed to allocate memory 8 This application has requested the Runtime to terminate
  • Android 改变 ImageView / Bitmap 的颜色

    我需要找到一种方法来改变 Android 中位图的颜色 我需要在我的应用程序中平滑地替换 更改椭圆形图像的颜色 具体取决于int价值 我需要类似的东西myValue 5比改变我的图像的颜色RED and if myValue 322将颜色更
  • jar 中的 apklib 有什么优点?

    我正在关注这个问题 https stackoverflow com questions 6059502 whats the difference between apklib and jar files但它并没有完全回答我的问题 jar 中
  • 如何在Android Compose中使用otf类型字体文件?

    我正在学习使用 Android Jetpack Compose 现在我有一个正则 otf字体文件在资产 字体 我想在文本中使用它 java lang RuntimeException Font asset not found commonu
  • ACCESS_BACKGROUND_LOCATION 不适用于低于 Q (29) 的 Android 版本

    我的应用程序面向 Android API 28 根据文档 https developer android com preview privacy location target android 10 我应该要求ACCESS BACKGROU
  • 删除Android所有语言中的字符串

    我有一个包含多个翻译的应用程序 我想删除一些字符串 我怎样才能重构并删除它们一次 例如在默认情况下strings xml文件并自动将删除传播到其他翻译的其他 strings xml 文件 您可以通过 Android Studio 中的 翻译
  • 不显示 WRITE_EXTERNAL_STORAGE 的权限对话框

    I want to download a file using DownloadManager And DownloadManager wants to WRITE EXTERNAL STORAGE permission I have in
  • Android:打开和关闭SQLite数据库

    我正在开发Android应用程序 我经常在其中访问本地数据库 该数据库可以从不同的主题访问 因此我遇到了数据库的协调问题 我使用以下open and close method public void open mDb mDbHelper g
  • 检测 ListView(或 ScrollView)内的滚动位置

    我正在构建一个聊天室应用程序 其中每 X 秒就会轮询一次新事件 每次发生这种情况时 此代码都会使用新数据更新 RoomAdapter ArrayAdapter 的自定义子类 并将其滚动到底部 RoomAdapter adapter Room
  • Android 中的 Google Places API - 适用于个人用户的 API_KEY

    我已经浏览了与在 Android 应用程序中使用 Places API 相关的 Android 文档和其他博客 到处都建议使用 API KEY 来调用 REST 服务 API KEY 在整个项目 应用程序中都是相同的 每天的请求数限制为 1

随机推荐

  • Multiple representations of the same entity are being merged解决方法

    最近在写网站过程中发现自己hibernate学的还不到家 好多错误 特地来记录一下这个错误 java lang IllegalStateException Multiple representations of the same entit
  • GIt Error解决办法-不完整

    Pull 遇到的错误 Git fatal The remote end hung up unexpectedly Error RPC failed curl 18 transfer closed with outstanding read
  • Unity3D 车流线

    效果图 因为是静态图片可能不太能看出效果 车流线主要是用来模拟城市中行动的车 直接使用车模型 会在大场景中看不清楚 效果不会很好 一 实现原理 车流线肯定是需要绘制线条的 我这里直接使用TrailRender 这个拖尾功能可能很好帮助我们控
  • NPM酷库:accounting,格式化数字和货币

    NPM酷库 每天两分钟 了解一个流行NPM库 上次 我们了解到如何使用numeral库格式化数字 今天我们继续认识另外一个用来格式化数字的库accounting accounting accounting 主要提供的方法有 formatMo
  • Shuffle过程详解

    Shuffle过程详解 Shuffle过程是MapReduce的核心 最近看了很多资料 网上说法大体相同 但有些地方有一点点出入 就是各个阶段的执行顺序 总个shuffle过程可以看做是从map输出到reduce输入的这个中间过程 在这个中
  • Java 学习路线

    文章目录 Java基础 1 Java 基本功 1 1 Java 入门 基础概念与常识 1 2 Java 语法 1 3 基本数据类型 1 4 方法 函数 2 Java 面向对象 2 1 类和对象 2 2 面向对象三大特征 2 3 修饰符 2
  • web前端面试的自我介绍

    开始背景 1 面试官在你自我介绍的时候 才有时间看你的简历 人太多没时间看 看了也记不住 2 你在自我介绍中 他在想问你什么问题 3 了解你语言 表达能力 自信气场 仪表形态 常规低级错误 1 对面试官说 简历上有你自己看吧 2 对照简历就
  • .sh文件中第一行 #!/bin/bash -il 是什么

    sh文件中第一行 bin bash il 是什么 是执行该脚本文件的解释器的路径和选项 在一个 shell 脚本文件的第一行加上 符号 称为 shebang 它告诉系统使用哪个解释器执行这个脚本 在 bin bash 的例子中 它告诉系统使
  • Deep learning-based CSI Feedback for Beamforming 1

    1 Abstract The potentials of massive multiple input multipleoutput MIMO are all based on the available instantaneous cha
  • 目标检测综述-------深度学习用于目标检测的近期进展 introduction(一)

    论文题目 Recent Advances in Deep Learning for Object Detection 论文地址 摘要 目标检测是计算机视觉一个重要的视觉问题并且在最近得到了广泛的研究 视觉目标检测致力于在给定的图像内找到带有
  • “No input file specified “问题的处理

    接手新项目 配置的时候 遇上了 No input file specified 的问题 第一反应 是上网搜 关于这个问题的帖子有很多 总的来说 得到的问题原因有 一 跟路径有关系 路径没指对 二 可能是权限的问题 如 不允许访问 三 SCR
  • 《实现VM机与本机互ping》

    实现VM机与本机互ping 1 安装VM机及对应的OS gt 到本机检测VMware Network Adapter VMnet8是否已经生成 网上邻居 网络连接 2 查看 VMware Network Adapter VMnet8 网络I
  • C++ for循环跳过某一项求和

    include
  • 双三次插值及Matlab实现

    双三次插值及Matlab实现 一 简单实例 采用简单实例进行对双三次插值的介绍 由于双三次插值对于目标图像的某一像素进行估计时 所采用的像素信息为其周围16个像素点信息 因此不同于最近邻插值和双线性插值 此时假设有 5 5 5 times5
  • feign.FeignException: status 400 reading xxx#xxxx(String); content:

    网上有很多不一样的说话 我这个主要是因为feign的那个方法使用的 RequestParam注解 这个接收的参数长度过长造成的 这也是feign就算使用post方法 RequestParam的那个参数他会放在请求地址后面 而不是放在请求体
  • JupyterNotebook设置Python环境的方法步骤

    不多说 看链接 https stackoverflow com questions 39604271 conda environments not showing up in jupyter notebook conda activate
  • LAMP架构(qq农场)、部署jira、Java+数据库环境、

    LAMP架构 论坛 yum y install httpd yum y install mariadb mariadb server yum y install php php fpm php mysql php gd gd systemc
  • Linux多线程

    什么是线程 线程是OS调度的基本单位 其实在Linux环境下 线程可以看做是轻量级线程 Linux的线程本质仍然是进程 Linux先有进程后有线程 当创建了一个进程时 系统给他分配一段4G的虚拟内存 并在其内生成进程的PCB 当他调用相关函
  • 2023年网络安全趋势【网安人必看】

    数据安全越来越重要 我国 数据安全法 提出 建立健全数据安全治理体系 各地区部门均在探索和简历数据分类分级 重要数据识别与重点保护制度 数据安全治理不仅是一系列技术应用或产品 更是包括组织构建 规范制定 技术支撑等要素共同完成数据安全建设的
  • android Native和 Flutter 通信

    android 工程集成Flutter 集成方式主要是两种 1 工程的方式集成 首先创建android 和flutter工程 工程路径必须在同一路径下 1 在android 工程的settings gradle 文件中添加 rootProj
Powered by Hwhale