assembleDebug太慢的问题调查以及其他
Preface
最近在做flutter上的音频和视频方面的探索。
需要用到一些视屏区域截取,视屏导出成序列图等等。
这是昨天晚上到今天早上解决的一些问题的汇总,可能先后顺序之类的会记错;
此文目的用于提供一些解决问题的思路,聊以备忘,以使不忘,后事之师。
Contents
设备问题
个人设备过老或者缺失
mac pro early 2015
xcode不能更新,所以最新的flutter项目没法用 macos 来debug,且硬件所限,运行 idea 都发出拖拉机的声音,所以 android emulator也是卡成狗
2013年的组装电脑
windows电脑都这逼样,超过一定年限,哪怕资源管理器里面内存和cpu占用不高,按下 win+e 都能反应半天,最后还是选了在windows上通过android studio加x86 emulator 来排除一些环境问题
唯一的安卓设备 mi pad
由于意气之下弄坏了
环境问题
使用的部分flutter包只支持 iOS, android, macOS。
Running Gradle task 'assembleDebug'
使用国内源加速maven与gradle
老是卡这里,开始以为是 maven 没有使用国内源加速的原因,
先后在以下文件中替换了 gradle 的国内源
- {flutter_home}/package/flutter_tools/gradle/flutter.gradle
- /app/build.gradle
然而没什么鸟用。
直接使用命令行来进行gradle编译
然后根据网上提示,进入到 android 目录下,先后运行:
flutter clean
./gradlew clean build
这个时候就可以看到 gradle 真正的报错信息了.
FAILURE: Build failed with an exception.
Where:
Build file 'F:\workspace\app\android\app\build.gradle' line: 24
What went wrong:
A problem occurred evaluating project ':app'.
Failed to apply plugin 'com.android.internal.application'.
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
Your current JDK is located in F:\Program Files\Java\jdk1.8.0_60\jre
You can try some of the following options:
- changing the IDE settings.
- changing the JAVA_HOME environment variable.
- changing org.gradle.java.home in gradle.properties.
java版本问题
好嘛,java版本问题,去oracle下载一个不就得了,于是下了个java 20。
多年未更新过java的我,渠道oracle下载java,居然要登陆!!!!!
更新完成,继续运行:
.\gradlew --status
1个idle的,6个 stopped,没有问题,继续:
./gradlew clean build
发现java 20也不行!友邦惊诧!!!
好嘛,写在java 20,我就给你装个java 11。
安装完java 11,尼玛,明明系统环境变量 \(JAVA_HOME\) 设置的就是新安装的 java 11的jdk根目录,缺还是去之前安装的java 20的目录下去找了!!!
为也是服了,在 gradlew.bat 中也打了日志,就是莫名其妙的在java 11的jdk目录下的bin中找不到java 执行文件!!!
网上说,java 20卸载不干净会有残留文件无法删除,导致此问题。
确认了一下,确实在之前的java 20目录下有残留文件,立即 shift + DEL, 妈蛋,文件使用中。
折腾之下还是重启电脑之后删除掉了。
此事运行运行 clean, 会有什么有趣的事情发生呢?
javaHome invalid问题
The supplied javaHome seems to be invalid.
于是,修改了 gradle.property:
org.gradle.java.home=f:\\Programe Files\\Java\\jdk-11
此时,项目的源码可以编译通过,但是
Unsuppoted class file major version 64
- 首先,在build.gradle中,将最小版本调整为插件需要的最小版本
- 其次,此插件只能运行与移动平台与mac上,可以使用模拟器debug一下
事实证明,模拟器中可以运行起来,无报错。
至此,以及可以完美的运行起来了,可以往项目中加屎了。
资源服务器的问题
app需要用到一些资源,于是打算在wsl装的ubuntu上搞一个http服务器专门用来提供资源管理。
用golang/gin写了一个简单的http静态资源服务器,打包linux:
set GOOS=linux
set GOARCH=amd64
go build
好了,在 ubuntu 上执行 explore.exe . 之后,将刚才生成的可执行文件拉进来, 直接运行,完美;
使用 nohup 运行,卡在了命令行,于是,想起来我这台2013年的拖拉机确实无法承受如此重任,于是想到了上周从垃圾堆里翻出来的树莓派 3 B+;
重新将执行文件上传到树莓派:
scp /Users/duke/Downloads/reserver pi@192.168.3.25:/home/pi/res
然后
chmod 777 ./reserver
然后运行
cannot execute binary file: Exec format error
难道是我的树莓派是32bit的?不应该啊,之前确认过是64bit的。
然后调查了一下,突然想起树莓派是arm架构的,于是
set GOOS=linux
set GOARCH=arm64
set CGO_ENABLED=0
go build -o reserver.out ./release/raspberry/reserver.out
然后,将此文件上传至树莓派,完美运行.
Conclusion
- 目前 flutter 只支持 java 11,官网下载java要登陆,国内其实有免登陆的下载源;
- 无法忍受android项目 assembleDebug 太慢,可以自己手动调试一下;
- gradle最后debug插件遇到问题很有可能其实是本地平台的问题,
assembleDebug太慢的问题调查以及其他的更多相关文章
- 如何理解 Linux 中的 load averages
原文:https://mp.weixin.qq.com/s?src=11×tamp=1533697106&ver=1047&signature=poqrJFfcNAB ...
- 还是畅通工程(peime算法最小生成树)
个人心得:就是最小生成树的运用,还是要理解好每次都是从已搭建好的生成树里面选择与她的补集中最短距离,所以那个book数组的更新 需要好生体会.不过还是有缺陷,算法的复杂度为O(n^2),看介绍说用优先 ...
- [转帖]中国 GPL 诉讼第一案:关于 GPL 问题的探讨
中国 GPL 诉讼第一案:关于 GPL 问题的探讨 https://linux.cn/article-11683-1.html 2019 年 11 月初,数字天堂(北京)网络技术有限公司(下称:数字天 ...
- Rust 2017 调查报告:学习曲线是最大痛点(最大的问题是这门语言太偏底层了,现在做底层的少了。还有C这个绕不过去的存在)
Rust 官方在社区上做了一次调查,以了解用户如何看待 Rust 的发展.调查共收到 5368 份回复,其中有 大约 2/3 的是 Rust 用户,剩下的 1/3 是非 Rust 用户,调查结果如下. ...
- O365(世纪互联)SharePoint 之调查列表简单介绍
前言 SharePoint中为了提供了很多开箱即用的应用程序,比如调查列表就是其中之一,同样,在O365版本里(国际版和世纪互联版本均可),也有这样的调查列表可以供我们使用,而使用起来非常方便和快速, ...
- 【Java EE 学习 72 上】【数据采集系统第四天】【增加调查logo】【文件上传】【动态错误页指定】【上传限制】【国际化】
增加logo的技术点:文件上传,国际化 文件上传的功能在struts2中是使用文件上传拦截器完成的. 1.首先需要在页面上添加一个文件上传的超链接. 点击该超链接能够跳转到文件上传页面.我给该表单页面 ...
- [转]中国最大的Webshell后门箱子调查,所有公开大马全军覆没
起因 对这件事情的起因是某天我渗透了一个大站,第二天进webshell时就发现,当前目录出现了新的后门,仔细一查,发现是博彩团伙干的,网站被全局劫持黑帽程序如下代码 set_time_limit(); ...
- 上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些?各有什么优缺点?并在Github注册账户,写一篇博客记录注册的过程。
问题一:上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些?各有什么优缺点?(以下内容为网上查询所得) Microsoft TFS(Team Foundation Server): 优点: ...
- fir.im Weekly - 2015 年开发者调查报告
终于一脚迈入了 2016 年.无论你是否准备好,未来已经汹涌扑来-- 新年第一期的 fir.im Weekly 干货颇多,来看一看:) 2015 Developer Survey stackoverf ...
- Java Performance - 如何调查解决 CPU 问题
随着硬件的发展,往往服务器会配置足够的 CPUs, Java Server/服务器不太有 CPU 问题:但是偶尔因为 代码海量循环 或者 线程安全性(thread safe), 还是会带来 CPU 问 ...
随机推荐
- 【一步步开发AI运动小程序】十、姿态动作相似度比较
随着人工智能技术的不断发展,阿里体育等IT大厂,推出的"乐动力"."天天跳绳"AI运动APP,让云上运动会.线上运动会.健身打卡.AI体育指导等概念空前火热.那 ...
- 公路堵车概率模型Python(Nagel-Schreckenberg交通流模型)
路面上有N辆车,以不同速度向前行驶,模拟堵车问题.有以下假设: 假设某辆车的当前速度是 v 如果 前方可见范围内没车,下一秒车速提高到 v+1 如果 前方有车,前车的距离为 d ,且 d < v ...
- 使用Python实现学生信息管理系统
本文介绍了一个简单的学生信息管理系统,包括管理员登录.重置学生密码.添加.删除和修改学生信息.查询学生信息以及对学生成绩进行排序等功能.该系统使用Python编写,基于控制台交互 实现思路 该系统分为 ...
- 软件测试从小白进阶高手-Python自动化+Jmeter性能+App项目+接口测试
软件测试从小白进阶高手-Python自动化+Jmeter性能+App项目+接口测试 软件测试技能,包括Python自动化.Jmeter性能测试.App项目测试.接口测试.接下来,我将从每个技能点给出一 ...
- 【Unity3D】魔方
1 需求实现 绘制魔方 中基于OpenGL ES 实现了魔方的绘制,实现较复杂,本文基于 Unity3D 实现了 2 ~ 10 阶魔方的整体旋转和局部旋转. 本文完整代码资源见→基于 Unit ...
- 解放计算力:使用并行处理提升python for循环速度
Python 是一门功能强大的编程语言,但在处理大规模数据或复杂计算任务时,性能可能成为一个瓶颈.幸运的是,Python 提供了多种方法来提升性能,其中之一是利用并行处理来加速循环操作.本文将介绍如何 ...
- Blazor前后端框架Known-V1.2.1
V1.2.1 Known是基于C#和Blazor开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行. 概述 基于C#和Blazor实现的快速开发框架,前后端分离,开箱即用. 跨平台,单 ...
- SQL Sever 各版本的适用环境
很多用visual studio做开发的朋友经常会用到sqlserver数据库,但是往往在选择的时候就不知道该使用哪个版本了,今天就给大家分享一下sqlserver各个版本之间的区别,以及各个版本之间 ...
- 使用Stable Diffusion生成艺术二维码
在数字艺术的世界中,二维码已经从单纯的信息承载工具转变为可以展示艺术表达的媒介.这是通过使用Stable Diffusion的技术实现的,它可以将任何二维码转化为独特的艺术作品.接下来,我们将一步步教 ...
- vue3中父组件与组件之间参数传递,使用(defineProps/defineEmits),涉及属性传递,对象传递,数组传递,以及事件传递
Vue3 中子父组件之间的通信 一.父组件传递参数到子组件 采用defineProps 传递属性 父组件: <template> <div> <h1>这是父组件&l ...