flutter 学习demo记录:https://github.com/carlzhan/learning_flutter

喜欢的随手来个star,谢谢

通过命令生成key.jks文件

keytool -genkey -v -keystore 秘钥文件目录/名称.jks -keyalg RSA -keysize 2048 -validity 有效天数 -alias 昵称 keytool -genkey -v -keystore ./key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

在目录android->app->build.gradle中配置

def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))android {
...
signingConfigs {release {keyAlias keystoreProperties['keyAlias']keyPassword keystoreProperties['keyPassword']storeFile file(keystoreProperties['storeFile'])storePassword keystoreProperties['storePassword']}}buildTypes {release {signingConfig signingConfigs.debugminifyEnabled trueuseProguard trueproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'dependencies {implementation 'com.android.support:support-fragment:28.0.0'}}}
...
}

在目录android下创建文件key.properties

storePassword=123456
keyPassword=123456
keyAlias=key
storeFile=../key.jks

在android->app目录下创建混淆文件proguard-rules.pro

#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.**  { *; }

命令行中执行命令:flutter build apk

就可以在\build\app\outputs\apk\release目录中看到app-release.apk文件

常见混淆失败报错:
Warning: io.flutter.embedding.android.FlutterActivity: can't find referenced method 'void setContentView(android.view.View)' in program class io.flutter.embedding.android.FlutterActi
vity
Warning: io.flutter.embedding.android.FlutterActivity: can't find referenced method 'void addContentView(android.view.View,android.view.ViewGroup$LayoutParams)' in program class io.f
lutter.embedding.android.FlutterActivity
Warning: io.flutter.embedding.android.FlutterActivity: can't find referenced method 'android.content.res.Resources$Theme getTheme()' in program class io.flutter.embedding.android.Flu
tterActivity
Warning: io.flutter.embedding.android.FlutterActivity: can't find referenced method 'android.content.res.Resources getResources()' in program class io.flutter.embedding.android.Flutt
erActivity
Warning: io.flutter.embedding.android.FlutterActivity: can't find referenced method 'android.view.Window getWindow()' in program class io.flutter.embedding.android.FlutterActivity
Warning: io.flutter.embedding.android.FlutterActivity: can't find referenced method 'android.support.v4.app.FragmentManager getSupportFragmentManager()' in program class io.flutter.e
mbedding.android.FlutterActivity
Warning: io.flutter.embedding.android.FlutterActivity: can't find referenced method 'android.content.Intent getIntent()' in program class io.flutter.embedding.android.FlutterActivity
Warning: io.flutter.embedding.android.FlutterActivity: can't find referenced method 'android.content.Context getApplicationContext()' in program class io.flutter.embedding.android.Fl
utterActivity
Warning: io.flutter.embedding.android.FlutterActivity: can't find referenced method 'android.content.pm.PackageManager getPackageManager()' in program class io.flutter.embedding.andr
oid.FlutterActivity
Warning: io.flutter.embedding.android.FlutterActivity: can't find referenced method 'android.content.ComponentName getComponentName()' in program class io.flutter.embedding.android.F
lutterActivity
Warning: io.flutter.embedding.android.FlutterActivity: can't find referenced method 'android.content.pm.ApplicationInfo getApplicationInfo()' in program class io.flutter.embedding.an
droid.FlutterActivity
Warning: io.flutter.embedding.android.FlutterFragment: can't find referenced method 'void setArguments(android.os.Bundle)' in program class io.flutter.embedding.android.FlutterFragme
nt
Warning: io.flutter.embedding.android.FlutterFragment: can't find referenced method 'android.support.v4.app.FragmentActivity getActivity()' in program class io.flutter.embedding.andr
oid.FlutterFragment
Warning: io.flutter.embedding.android.FlutterFragment: can't find referenced method 'android.os.Bundle getArguments()' in program class io.flutter.embedding.android.FlutterFragment
Warning: io.flutter.embedding.android.FlutterFragment: can't find referenced method 'android.content.Context getContext()' in program class io.flutter.embedding.android.FlutterFragme
nt
Warning: io.flutter.embedding.android.FlutterFragment: can't find referenced method 'android.content.res.Resources getResources()' in program class io.flutter.embedding.android.Flutt
erFragment
Warning: io.flutter.embedding.android.FlutterFragment$1: can't find referenced method 'android.support.v4.app.FragmentActivity getActivity()' in program class io.flutter.embedding.an
droid.FlutterFragment
Warning: io.flutter.embedding.android.FlutterFragment$Builder: can't find referenced method 'void setArguments(android.os.Bundle)' in program class io.flutter.embedding.android.Flutt
erFragment
Warning: there were 18 unresolved references to program class members.Your input classes appear to be inconsistent.You may need to recompile the code.(http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedprogramclassmember)
Warning: Exception while processing task java.io.IOException: Please correct the above warnings first.
Thread(Tasks limiter_10): destructionFAILURE: Build failed with an exception.* What went wrong:
Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease'.
> Job failed, see logs for details* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.* Get more help at https://help.gradle.orgBUILD FAILED in 4s
Running Gradle task 'assembleRelease'...
Running Gradle task 'assembleRelease'... Done                       4.7s
*******************************************************************************************
The Gradle failure may have been because of AndroidX incompatibilities in this Flutter app.
See https://goo.gl/CP92wY for more information on the problem and how to fix it.
*******************************************************************************************
Gradle task assembleRelease failed with exit code 1

The Flutter Android Java code contains references to the Android fragment support library. But the default template Flutter app does not use fragments, so the template build.gradle script does not link in the fragment support library in order to reduce APK binary size.

However, Proguard will scan all the classes in the app and will generate the errors seen above unless it can find the fragment support classes.

You may need to declare a different dependency if you app uses the AndroidX libraries instead of support-fragment.

For example:

buildTypes {release {signingConfig signingConfigs.debugminifyEnabled trueuseProguard trueproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'dependencies {implementation 'com.android.support:support-fragment:28.0.0'}}}

flutter混淆编译生成releaseAPK文件相关推荐

  1. 【错误记录】Flutter 设备连接显示 Loading... ( 断网 | 删除 flutter/bin/cache/lockfile 文件 )

    文章目录 一. 报错信息 二. 解决方案 一. 报错信息 手机已经打开开发者模式 , USB 调试一打开 , 但是在 Androud Studio 中的设备一直显示 " Loading &q ...

  2. Flutter HTTP上传文件使用详解

    Flutter HTTP 上传文件详解 Flutter HTTP上传文件详解 multipart/form-data Flutter Http插件 MultipartRequest使用 Flutter ...

  3. Flutter持久化存储之文件存储

    前言 本篇将给大家分享Flutter中的file存储功能,Flutter SDK本身已经有File相关的api,所以在Flutter中使用file存储的关键是如何获取手机中存储的目录,然后根据目录路径 ...

  4. Flutter学习指南:文件、存储和网络

    Flutter学习指南 交互.手势和动画 UI布局和控件 熟悉Dart语言 编写第一个应用 开发环境搭建 本篇文章我们先学习 Flutter IO 相关的基础知识,然后在 Flutter学习指南:交互 ...

  5. .CS文件编译生成.DLL文件 .EXE文件(C#网络搜集)(转)

    如果没有VS用下面的办法 搜索csc.exe 打开cmd 转到csc.exe的文件夹 运行 csc /t:library N:\NET\cs\*.cs   N:\NET\cs\*.cs  是你的cs文 ...

  6. flutter项目打包.exe文件发布windows版

    目录 发布windows版 1.为现有的 Flutter 应用程序添加桌面支持 2..创建main_desktop.dart文件 3.hover安装和环境配置 4.初始化,并打包 坑1 发布windo ...

  7. Tensorflow Lite之编译生成tflite文件

    这是tensorflow生成的各种模型文件: GraphDef (.pb) - a protobuf that represents the TensorFlow training and or co ...

  8. win10 下pycharm+anaconda 编译生成pyd文件

    由于生产部署的问题,需要把用python写的深度学习代码编译为可被调用的文件.上网搜索了下,暂时了解到win10下pyd文件比较流行.下面是直接引用某位博主的结论,个人感觉总结的很好.其中Cython ...

  9. .CS文件编译生成.DLL文件 .EXE文件

    如果没有VS用下面的办法 搜索csc.exe 打开cmd 转到csc.exe的文件夹 运行 csc /t:library N:\NET\cs\*.cs   N:\NET\cs\*.cs  是你的cs文 ...

最新文章

  1. 【Qt中文手册】QObject
  2. mysql的安装胚子_Mysql安装
  3. linux screen 命令详解(后台执行linux命令)
  4. 【深度学习】图像自动处理工具SimpleITK的使用(Python)
  5. python语言及其应用-python语言及其应用
  6. 知乎问题:概率图模型是否有必要系统地学习
  7. [Python爬虫] scrapy爬虫系列 一.安装及入门介绍
  8. 11. Java基础之继承
  9. uva 610(tarjan的应用)
  10. 海康威视提前批-大数据算法工程师面试
  11. clean crxmouse gestures 3.4.2 版本在 Chrome 98.0.4758.102(正式版本),ubuntu 20.04系统上使用时会导致鼠标右键失灵
  12. 计算机丢失libcef,无法启动程序,因为计算机中丢失libcef.dll。怎么办?
  13. 搜狗推送接口之搜狗秒收录技巧分享
  14. Vue-element-admin 基础模板
  15. pycharm和webstorm下载安装流程
  16. 「spacingjs-1.0.7」,点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载,极速在线查看享用。 链接:https://www.aliyundrive.com/s/a87tt
  17. 基于PaddleX的化妆品识别
  18. vue 2.6 keep-alive 不生效问题记录点
  19. 贝壳云php源码,贝壳云P1刷Armbian系统后的折腾笔记
  20. 三星对韩国意味着什么?假如三星破产了,韩国会受到什么影响?

热门文章

  1. 弹出div浮动登陆框 背景变灰
  2. 六问 Kafka 为啥那么牛!
  3. 国际八大传感器生产厂家排名
  4. 信号完整性之串扰(四)
  5. matlab求解常微分方程,matlab 求解常微分方程式
  6. 多路数字信号采用同步时分复用(TDM)时复用线路需要的最小通信能力
  7. 解读wlk成就系统系列之:饱读诗书
  8. 人工智能实验——猴子摘香蕉python
  9. IATF-16949国际汽车供应链品质管理体系实战--(1) APQP
  10. 问题 J: 鸡兔同笼(2级) 一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物。