1.关于状态栏颜色

查看FlutterActivity 的onCreate方法得知FlutterActivityDelegate中

    public void onCreate(Bundle savedInstanceState) {if(VERSION.SDK_INT >= 21) {Window window = this.activity.getWindow();window.addFlags(-2147483648);window.setStatusBarColor(1073741824);window.getDecorView().setSystemUiVisibility(1280);}

所以要自己重置statusBarColor 与 原生保持一致。

    @Overrideprotected void onCreate(Bundle savedInstanceState) {FlutterMain.startInitialization(getApplicationContext());super.onCreate(savedInstanceState);GeneratedPluginRegistrant.registerWith(this);//必须要重写   FlutterActivityDelegate 会在 onCreate 时 自动设置 statusBarColor,这里我们再手动重置回来。if(Build.VERSION.SDK_INT >= 21) {Window window = this.getWindow();window.setStatusBarColor(-16777216);window.getDecorView().setSystemUiVisibility(0);}registerMethodChannel();// 获取类名className = getClass().getSimpleName();LogUtils.e(className + ".onCreate()");}

2.关于原生Activity打开FlutterActivity 的进入动画效果。

当生成产物时如果build.gradle中 compileSdkVersion与targetSdkVersion 过高则自带动画效果由左向右进入。

android {compileSdkVersion 28lintOptions {disable 'InvalidPackage'}defaultConfig {// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).applicationId "com.womai_flutter"minSdkVersion 16targetSdkVersion 28versionCode flutterVersionCode.toInteger()versionName flutterVersionNametestInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"}buildTypes {release {// TODO: Add your own signing config for the release build.// Signing with the debug keys for now, so `flutter run --release` works.signingConfig signingConfigs.debug}}
}

如果不想要动画效果,只需要降低compileSdkVersion与targetSdkVersion。

android {compileSdkVersion 26lintOptions {disable 'InvalidPackage'}defaultConfig {// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
//        applicationId "com.womai_flutter"minSdkVersion 16targetSdkVersion 25versionCode flutterVersionCode.toInteger()versionName flutterVersionNametestInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"}buildTypes {release {// TODO: Add your own signing config for the release build.// Signing with the debug keys for now, so `flutter run --release` works.signingConfig signingConfigs.debug}}
}

3 将产物aar 加入到原生项目后,运行项目crash

代码混淆的问题。要注意FLutter代码的混淆问题。如果混淆后可能部分机型安装后,启动应用卡死。

#Flutter Wrapper
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.**  { *; }
-keep class io.flutter.util.**  { *; }
-keep class io.flutter.view.**  { *; }
-keep class io.flutter.**  { *; }
-keep class io.flutter.plugins.**  { *; }

4.在接入原生后,可以在阿里云 小米 华为等云测平台进行兼容性测试。

https://mqc.aliyun.com
https://deveco.huawei.com
https://dev.mi.com/testit

5.FAQ About Flutter

https://flutter.dev/docs/resources/faq

欢迎爱学习的小伙伴加群一起进步:230274309

记第一次生产项目中Flutter接入原生项目遇到的问题相关推荐

  1. uniapp android原生,在uni-app项目中集成Android原生工程

    [TOC] # 在uni-app项目中集成Android原生工程 按照官方的方案,我们如果进行本地打包的话,需要重新创建一个Android原生工程,于是就会导致我们管理多个项目,切来切去的也麻烦. 经 ...

  2. vue2项目中如何接入视频监控

    前言 想必各位作为开发者的程序员,有时候公司会给你安排在项目中实现视频实时监控 视频实时监控功能,在很多领域都广泛应用,能帮我们在各行各业都解决很多事情,像智慧工地中AI识别(安全帽.在离岗等).国标 ...

  3. eclipse项目中关于导入的项目里提示HttpServletRequest 不能引用的解决办法

    eclipse项目中关于导入的项目里提示HttpServletRequest 不能引用的解决办法  当使用eclipse导入外部的web工程时,有时会提示HttpServletRequest, Ser ...

  4. git项目中的子git项目_使用子模块和子树管理Git项目

    git项目中的子git项目 如果您从事开源开发,则可能与Git一起管理源代码. 您可能遇到过具有大量依赖项和/或子项目的项目. 您如何管理它们? 对于开源组织,为社区和产品实现单源文档和依赖性管理可能 ...

  5. android内嵌套cocos2dx,Cocos2dx项目嵌入到Android原生项目中

    最近开始有一些需求.非常像游戏.互动特别的强.现在的版本有人用native来实现的. 可是需求越来越多.用native真的是心累.而且体验生硬.故打算在app里嵌入Cocos2dx 首先需要安装And ...

  6. springboot项目中的注解 启动项目的方式 解决spring的bean.xml配置不生效 spring的基础JDBC配置

    依赖 创建一个 Spring Boot 工程时,可以继承自一个 spring-boot-starter-parent ,也可以不继承 先来看 parent 的基本功能有哪些? 定义了 Java 编译版 ...

  7. java设计模式在项目中的使用_SpringMVC项目里,有必要使用一些设计模式吗?

    背景 为了兼容多种业务,想在项目中使用一些设计模式,以便于管理. 例如,我需要创建用户并返回userid,每种业务创建的方式都不一样. 我选取了"适配器模式",但是我发现,在spr ...

  8. android 热门开源库,GitHub安卓热门开源资源在项目中的使用及项目总结

    前面一篇文章 <android studio的入门使用> 已经讲了如何导入一个开源的项目.本文则来讲如何使用这些开源的资源,以及在一个小app的开发中遇到的问题.因为不可能面面俱到,所以争 ...

  9. git在项目中常用命令和项目流程中涉及到步骤分析

    GIT git的组成:分布式,版本控制,软件 svn是集中式版本控制,而git是分布式版本控制 问价拷贝 本地版本控制 集中式版本控制 分布式版本控制 第一阶段:生成版本,扩展功能,版本回滚 命令: ...

最新文章

  1. android studio 的中文网站
  2. 如何优化数据中心虚拟机布局
  3. 各种 django 静态文件的配置总结【待续】
  4. 基于django的视频点播网站开发-step12-后台订阅功能
  5. php stock 资料地址
  6. 排球比赛计分规则功能说明书
  7. Mybatsi注解开发-基础操作
  8. 三相pmsm矢量控制仿真模型_学术|基于新型滑模观测器的永磁同步电机无传感器矢量控制系统...
  9. Go 语言学习笔记(一):基础知识
  10. 【LeetCode笔记】55. 跳跃游戏(Java、贪心法)
  11. nginx nodejs环境配置_服务器环境配置安装(mysql+redis+nodejs+nginx)
  12. Upload-Labs(11-15)
  13. Ambari集群里操作时典型权限问题put: `/home/bigdata/1.txt': No such file or directory的解决方案(图文详解)...
  14. Join的实现步骤 以及连接的概念
  15. 《Redis视频教程》(p6)
  16. 全向移动小车运动控制_如何让机器人进行全向移动
  17. mino文件服务器,mimo技术有什么用_mino技术原理解析
  18. 设计模式之九原型模式
  19. linux双网卡网桥转发,Linux网桥实现
  20. 截屏与截长图功能的实现

热门文章

  1. 格式工厂-格式转换器(老版本)
  2. MIGO 抬头屏幕自定义字段增强示例
  3. 上海 集体户口转个人户口
  4. 太阳能光伏发电基础知识科普教学QY-TF11
  5. 影响未来的应用ifttt,互联网自主神经系统的又一个有力证据
  6. 郑州三级分销系统小程序开发层级划分
  7. ALSA (高级Linux声音架构)、ASOC基础知识
  8. Python:如何方便地用Python发outlook邮件
  9. html中flash的用法,flash的用法总结大全
  10. 如何编制试算平衡表_试算平衡表的编制步骤是什么?