记第一次生产项目中Flutter接入原生项目遇到的问题
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接入原生项目遇到的问题相关推荐
- uniapp android原生,在uni-app项目中集成Android原生工程
[TOC] # 在uni-app项目中集成Android原生工程 按照官方的方案,我们如果进行本地打包的话,需要重新创建一个Android原生工程,于是就会导致我们管理多个项目,切来切去的也麻烦. 经 ...
- vue2项目中如何接入视频监控
前言 想必各位作为开发者的程序员,有时候公司会给你安排在项目中实现视频实时监控 视频实时监控功能,在很多领域都广泛应用,能帮我们在各行各业都解决很多事情,像智慧工地中AI识别(安全帽.在离岗等).国标 ...
- eclipse项目中关于导入的项目里提示HttpServletRequest 不能引用的解决办法
eclipse项目中关于导入的项目里提示HttpServletRequest 不能引用的解决办法 当使用eclipse导入外部的web工程时,有时会提示HttpServletRequest, Ser ...
- git项目中的子git项目_使用子模块和子树管理Git项目
git项目中的子git项目 如果您从事开源开发,则可能与Git一起管理源代码. 您可能遇到过具有大量依赖项和/或子项目的项目. 您如何管理它们? 对于开源组织,为社区和产品实现单源文档和依赖性管理可能 ...
- android内嵌套cocos2dx,Cocos2dx项目嵌入到Android原生项目中
最近开始有一些需求.非常像游戏.互动特别的强.现在的版本有人用native来实现的. 可是需求越来越多.用native真的是心累.而且体验生硬.故打算在app里嵌入Cocos2dx 首先需要安装And ...
- springboot项目中的注解 启动项目的方式 解决spring的bean.xml配置不生效 spring的基础JDBC配置
依赖 创建一个 Spring Boot 工程时,可以继承自一个 spring-boot-starter-parent ,也可以不继承 先来看 parent 的基本功能有哪些? 定义了 Java 编译版 ...
- java设计模式在项目中的使用_SpringMVC项目里,有必要使用一些设计模式吗?
背景 为了兼容多种业务,想在项目中使用一些设计模式,以便于管理. 例如,我需要创建用户并返回userid,每种业务创建的方式都不一样. 我选取了"适配器模式",但是我发现,在spr ...
- android 热门开源库,GitHub安卓热门开源资源在项目中的使用及项目总结
前面一篇文章 <android studio的入门使用> 已经讲了如何导入一个开源的项目.本文则来讲如何使用这些开源的资源,以及在一个小app的开发中遇到的问题.因为不可能面面俱到,所以争 ...
- git在项目中常用命令和项目流程中涉及到步骤分析
GIT git的组成:分布式,版本控制,软件 svn是集中式版本控制,而git是分布式版本控制 问价拷贝 本地版本控制 集中式版本控制 分布式版本控制 第一阶段:生成版本,扩展功能,版本回滚 命令: ...
最新文章
- android studio 的中文网站
- 如何优化数据中心虚拟机布局
- 各种 django 静态文件的配置总结【待续】
- 基于django的视频点播网站开发-step12-后台订阅功能
- php stock 资料地址
- 排球比赛计分规则功能说明书
- Mybatsi注解开发-基础操作
- 三相pmsm矢量控制仿真模型_学术|基于新型滑模观测器的永磁同步电机无传感器矢量控制系统...
- Go 语言学习笔记(一):基础知识
- 【LeetCode笔记】55. 跳跃游戏(Java、贪心法)
- nginx nodejs环境配置_服务器环境配置安装(mysql+redis+nodejs+nginx)
- Upload-Labs(11-15)
- Ambari集群里操作时典型权限问题put: `/home/bigdata/1.txt': No such file or directory的解决方案(图文详解)...
- Join的实现步骤 以及连接的概念
- 《Redis视频教程》(p6)
- 全向移动小车运动控制_如何让机器人进行全向移动
- mino文件服务器,mimo技术有什么用_mino技术原理解析
- 设计模式之九原型模式
- linux双网卡网桥转发,Linux网桥实现
- 截屏与截长图功能的实现