记第一次生产项目中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是分布式版本控制 问价拷贝 本地版本控制 集中式版本控制 分布式版本控制 第一阶段:生成版本,扩展功能,版本回滚 命令: ...
最新文章
- React 组件生命周期
- 【廖雪峰Python学习笔记】面向对象编程OOP
- 一行代码都不用写,教你如何快速搭建Github博客!!!
- [转]Asp.NET生成静态页面并分页
- 5.intent_activity
- js温故而知新11(AJAX)——学习廖雪峰的js教程
- 专业软件 —— 硬件评测
- 一个奇怪的注意事项TNS-12545 TNS-12560 TNS-00515
- cos,sina,tan,cot
- leetcodepython_LeetCode 答案(python)1-17
- python数据归一化代码_Python 数据归一化/标准化
- principle文本导入oracle,动效设计Principle:初识界面
- Centos 7/linux 安装gcc 教程
- 图解通信原理与案例分析-10:楼宇有线对讲电话机案例--模拟基带点对点通信详解
- 教育培训教师说课通用PPT模板
- 3d胆码计算机方法,3D---定胆方法大全(转)
- [贪心] UVa1153 顾客是上帝 (很巧妙的贪心)
- 解决Web部署 svg/woff/woff2字体 404错误(转)
- 马斯克:让我成功的其实是工程思维
- python计算增长率函数_python – 基于增长率优化值的迭代计算
热门文章
- python autojs_自动化篇 | 手把手教你使用 AutoJS 自动领京豆
- 企业信息化由谁主导会更好?
- 平方面积怎么测量?教你快速学会这个方法
- 利用百度AI平台+pyqt5实现自动识别银行卡小工具
- 素描学习入门零基础学习静物素描的几种方法
- 当前流行搜索引擎爬虫IP列表
- 从FFmpeg耻辱榜看开源软件的“潜规则”
- PHP面试题汇总参考
- 暑假期间,怎么保护好孩子的视力?盘点适合孩子用的护眼台灯
- 关于branch XYZ is published (but not merged) and is now N commits behind错误的解决方法