【Flutter】Flutter项目中遇到的各种坑
Flutter项目遇到的各种坑
- 问题一 Execution failed for task ':app:compileDebugJavaWithJavac'.
- 问题二 Cannot create service of type TaskExecuter
- 查到的解决方案
- 方案一
- 方案二
- 方案三
- 最终执行
- 问题三 Plugin project:xxx(包)not found.Please update settings.gradle.
- 问题四 Manifest merger failed
- 问题五 Could not create service of type TaskHistoryRepository
- 问题六 Could not create service of type TaskOutputFilesRepository
- 总结
- 还存在的问题
问题一 Execution failed for task ‘:app:compileDebugJavaWithJavac’.
在运行Flutter项目的时候,发生了错误。并且,只有最先官方创建的经典demo项目才可以跑,一旦换个项目或者对经典demo项目里的main.dart文件进行修改,就无法运行。以下是
FAILURE: Build failed with an exception.* What went wrong:
Execution failed for task ':app:compileDebugJavaWithJavac'.
> Could not create service of type DefaultGeneralCompileCaches using GradleScopeCompileServices.createGeneralCompileCaches().* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
问题二 Cannot create service of type TaskExecuter
过了一段时间想从新开一个项目学学基础知识没想到连官方项目都跑不了了- -
问题如下
然而当我在问题二里用了Try:- -debug,再运行,问题二神奇的没了,但是又回到了问题一。。。
查到的解决方案
方案一
将工程目录里的.gradle文件删除重新启动AndroidStudio导入
方案二
在控制台输入gradlew compileDebugJavaWithJavac
会查看到你项目报错的原因
但是我一直没有 gradlew命令 这个需要另行下载吗?
方案三
原因:项目启动时新建文件,但是在linux下权限不足,导致一些配置文件无法新建,项目无法启动。
解决:进入项目目录下,修改所有文件的的用户和用户组为当前用户,运行如下命令:
sudo chown -R user:user *
user为当前用户代称
不过我运行不成功- -
最终执行
Try:--stacktrace 就能运行了
问题三 Plugin project:xxx(包)not found.Please update settings.gradle.
从GitHub上pull下来一个项目想运行学习一下,结果再一次出现问题二,同时也出现了查找不到包的现象。
Plugin project :cloud_functions_web not found. Please update settings.gradle.
Plugin project :firebase_core_web not found. Please update settings.gradle.
Plugin project :cloud_firestore_web not found. Please update settings.gradle.
Plugin project :firebase_auth_web not found. Please update settings.gradle.
目前未找到解决方案。
问题四 Manifest merger failed
Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 18 cannot be smaller than version 21 declared in library [:flutter_incall_manager] /Volumes/data/Flutter/webrtc-book-master/app-samples/build/flutter_incall_manager/intermediates/library_manifest/debug/AndroidManifest.xml as the library might be using APIs not available in 18Suggestion: use a compatible library with a minSdk of at most 18,or increase this project's minSdk version to at least 21,or use tools:overrideLibrary="com.cloudwebrtc.flutterincallmanager" to force usage (may lead to runtime failures)
这个根据Suggestion修改就可以了。
修改步骤:
你的Flutter项目 --> android --> app --> build.gradle
按照下方代码修改:
defaultConfig {// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).applicationId "com.app_samples"minSdkVersion 21 //把原本的18修改成21即可targetSdkVersion 28versionCode flutterVersionCode.toInteger()versionName flutterVersionNametestInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"}
一些补充:
minSDKVersion设置sdk最低版本的。作用就是操作系统会拒绝低于该标准的APP的安装。
例如,minSDKVersion设置为16(Jelly Bean 4.1系统),那么该APP将只能运行在4.1系统以上的设备中,想要在2.3系统上安装是不被允许的。
除了minSDKVersion
还有targetSDKVersion
、compileSDKVersion
targetSDKVersion
就是设置SDK目标版本,目标版本的设置就是为了告诉Android系统:本APP是设计计划给哪个API级别运行的。
compileSDKVersion
是设置编译版本。
一般来说编译目标版本是选择最新的SDK,这样可以及时使用体验到新的API提供的新功能。
问题五 Could not create service of type TaskHistoryRepository
目前未找到解决方案。
问题六 Could not create service of type TaskOutputFilesRepository
Error:FAILURE: Build failed with an exception.* What went wrong:
Could not create service of type TaskOutputFilesRepository using TaskExecutionServices.createTaskOutputFilesRepository().
> Timeout waiting to lock Build Output Cleanup Cache (/Volumes/MAC200G/work/anrong/XiZang_normal/branches/XiZang_normal_branch/.gradle/buildOutputCleanup). It is currently in use by another Gradle instance.Owner PID: unknownOur PID: 49348 Owner Operation: unknownOur operation: Lock file: /Volumes/MAC200G/work/anrong/XiZang_normal/branches/XiZang_normal_branch/.gradle/buildOutputCleanup/buildOutputCleanup.lock* 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 1m 3s
目前也未找到解决方案,但我觉得只是暂时的,多flutter run
几次可能会好
总结
回忆了一下,我做了哪些白费力气的努力:
- 在
stackoverflow
看到一篇和这个错误差不多的询问贴,里面有个方法是在Android Virtual Device Manager
=>Wipe data
对设备清除数据,我尝试了,可惜还是报错。
0428更新:一定要慎用Wipe data,它相当于格式化你的模拟器,等到再次启动将会非常卡慢,尤其当你的电脑空间小且内存小(心痛x
- 发现很多博客使用
gradlew --scan
或者gradlew --debug
命令解决问题,结果我发现我没有这个命令,也找不到所谓的./gradle
文件夹。 - 决定靠终端给的提示来操作,在
Setting
=>Compiler
=>Command-line Options
:分别执行了--debug
和--stacktrace
。最终官方示例项目跑起来了 - - - 在
pubspec.yaml
里执行pakage get
还存在的问题
我发现只要新建一个Flutter项目,就必定会出现以上问题,然后方法感觉也都是随缘成功,目前还找不到最针对性的解决方案。
偶尔还觉得就是电脑太菜,需要一段时间run才可以成功。
所以除了平常搜到的办法之外,多按几次flutter run
,给项目一点准备的时间,或许就好了。(挠头x
【Flutter】Flutter项目中遇到的各种坑相关推荐
- ReactNative 在丁香医生项目中引入的踩坑日记
ReactNative 在丁香医生项目中引入的踩坑日记 this没绑定到函数导致空指针 参考 React-Native 踩坑第二弹-undefined is not a function(evalua ...
- Vue2.0项目中使用sass(踩坑之路)
今天用2.0创建项目的时候,使用scss一直不成功,一直报错------ 记录一下,防止下次踩坑 1.安装依赖包 vue的webpack项目中需要安装上node-sass.sass-loader和st ...
- mybatis在实际项目中常见的排坑配置
目前在做mybatis数据迁移的时候遇到了不少坑,以前项目没有配置项,导致会产生不少bug,目前记录排坑了三种场景和其解决方案 驼峰转下划线 之前项目中没引入,解决办法有三个: 蠢一点的方法就是手工在 ...
- iOS总结:项目中的各种小坑汇总
一.字符串转JSON 在网络请求时,如果服务端返回的是字符串,那么就需要我们自己封装一个类,将请求下来的字符串转换成json对象,从而存入模型中. 注意: 字符串中如果含有一些特殊转意符(如\n.\t ...
- Flutter打包apk中的一些巨坑
许多人在使用Flutter打包apk时都会参照文档的做法,但是按照文档基本上是百分之百失败的[手动狗头],官网的做法是这样的(可以不用看) 官网做法 但是方法基本不可行. 下面介绍一下正确的打包姿势 ...
- altium中错误报告类型_Python 官方团队在打包项目中踩过的坑
花下猫语:这是 packaging 系列的第三篇译文,该系列是全网关于此话题的最详尽(水平也很高)的一个系列.原作者是 Python 官方打包团队成员,是 virtualenv 和 tox 项目的维护 ...
- 运维专家:我在大数据项目中踩过的那些坑
一.主要讨论人员 提问:陈超,七牛云技术总监 回答:朱冠胤,百度资深大数据专家,连续两次百度最高奖得主. 二.引言 "坐而论道"是一个轮流问答的玩法.本文是大数据主题周中,几位国内 ...
- cd返回上一 git_PHP项目中应用CI/CD的碎碎恋!
点击上方"架构艺术",每日干货! 作者:晶晶 原文链接:https://blog.jjonline.cn/linux/239.html DevOps漫谈:谈一谈在PHP项目如何应用 ...
- flutter不支持热更新_在iOS原生项目中使用Flutter,热更新
前言: Flutter 因其自建的渲染引擎,背靠谷歌的支持,近来俘获了不少的开发小伙伴,越来越多的开发者尝试使用Flutter进行开发,在原生项目中嵌入Flutter来完成复杂度不高的页面成为了一个不 ...
最新文章
- ssh中c3p0连接mysql_JSP+SSH+Mysql+C3P0实现的传智播客网上商城
- C++ string类中的find()函数的简单使用
- pandas中的sample方法
- mysql256次利用_【案例】【MySQL】一次复杂的主从库数据不一致修复
- Asterisk AGI脚本
- docker-compose下载慢_编写Docker Compose时要注意的五大常见错误
- day12 生成器和各种推导式
- C++ 如何释放std::function中绑定的对象
- 局部敏感哈希(Locality Sensitive Hashing,LSH)
- jsp编程:用Servlet实现用户登陆
- centos7parted分区_怎样用 parted 管理硬盘分区
- SAP QM 特性导出及定性定量
- VMware虚拟机双屏显示
- Spigot 算法之一 计算调和级数的和
- 华为p40还用麒麟990鸿蒙,华为P40渲染图曝光,2K挖孔屏+麒麟990+鸿蒙OS
- ssm整合说明与模板-Spring Spring MVC Mybatis整合开发
- 你的新媒体写作工具横向测评,请查收!
- 科技巨头竞速无人车落地:Waymo One 向左,百度Robotaxi向右
- Word上的空白页无法删除,是因为在Word文档中有多种类型的格式标记,很多时候隐藏在页面中,无法看到这些标记,并占用文档区域,导致空白页无法直接删除。
- SAP 远程连接登录配置(SAP Router)