5、下载使用别人的开源库,使用Android Studio打开报错,让你下载一大堆库。

【注意】这里下载的包名包含有google,intellij,apache,jetbrains之类的关键字。这样的大量出现一定是Android Studio版本号不匹配的问题。如果说是使用的第三方库没有下载下来,会提示某个库名称,让你下载的。这个需要注意了。

如图所示:

【原因分析】因为别人使用的Android Studio版本号和你使用版本号不一致。

【解决方案】查看Android Studio版本号在本文开头有介绍。然后打开项目的android/build.gradle,找到dependencies,然后修改步骤如下:

比如别人使用的是3.3.1版本,而你电脑使用的是3.2.1版本,那么你把3.3.1改成3.2.1,重新运行一下项目就正常了。

▶ 修改前:

dependencies { classpath ‘com.android.tools.build:gradle:3.3.1’ }

▶ 修改后:

dependencies { classpath ‘com.android.tools.build:gradle:3.2.1’ }

6、Waiting for another flutter command to release the startup lock… 这个问题的解决

【问题分析:】你开启新的flutter进程时,后台有一个flutter进程没有关闭,导致的冲突。

【解决方案:】关闭后台dart进程,关闭IDE,然后重新打开IDE,运行项目,运行到设备试试看,基本问题不大了。 (一句话:重启基本能解决问题)

7、Flutter 运行项目 一直卡在Initializing gradle…不能动了

【问题分析:】镜像的原因导致的,国内访问不了谷歌,需要翻墙。

【解决方案:】

**方案1:**翻墙试试看。

如果不行尝试就看看方案2: 打开项目根目录/android/,找到build.gradle文件,打开,首先注释掉google()和jcenter(),然后在下方添加一行代码maven { url 'https://maven.aliyun.com/repository/google' } ,这个是阿里云的镜像,构建速度会快一些,具体放置位置如下所示:

buildscript { repositories { //google() //jcenter() // 新增一行代码 放在这里 maven { url ‘https://maven.aliyun.com/repository/google’ } }

dependencies { classpath ‘com.android.tools.build:gradle:3.1.3’ } }

allprojects { repositories { // 注释掉google()和jcenter() //google() //jcenter() // 新增一行代码 放在这里 maven { url ‘https://maven.aliyun.com/repository/google’ } } }

rootProject.buildDir = ‘…/build’ subprojects { project.buildDir = “

r

o

o

t

P

r

o

j

e

c

t

.

b

u

i

l

d

D

i

r

/

{rootProject.buildDir}/

rootProject.buildDir/{project.name}” } subprojects { project.evaluationDependsOn(‘:app’) }

task clean(type: Delete) { delete rootProject.buildDir }

如果还是不行的话,那就把google()或者jcenter()的注释取消,逐个尝试看看,那三个镜像总有一个是可以使用的。

方案3: 方案2中的国内镜像设置之后还是卡住,建议看看是不是同时开了翻墙工具。国内镜像和翻墙工具会冲突,用了国内镜像,建议关闭翻墙工具。

**方案4:(无奈之计)**最近帮朋友看了这个问题,前面几项都试过了,还是很卡,最后一看电脑配置,AMD的CPU,吐我一口老血,编程开发多年,一直是intel的CPU(因为android sdk有一个intel加速工具),intel的cpu跑项目更快,AMD的刚开始做开发用过,特别卡,放弃了,换成了intel的一直用到现在。如果是AMD的CPU,建议换成intel的CPU,当然如果你条件好,建议买个mac更好。

8、初次创建项目,一片红,怎么办?如图所示:

【原因分析】项目说需要的用到的依赖库还没有下载下来,所以爆红。

【解决方案】点击右上角的Get depencies镜像下载相关的库。这时候可以看到下方的命令窗口显示:“running flutter packages get in xxx”,耐心等待即可。

9、点击Get depencies后者命令行输入flutter packages get结果卡住了,想要的库下载不下来怎么办?

【原因有很多】:

(1)没有正确安装flutter环境,比如没有执行flutter doctor命令去下载dart sdk,导致一些相关的dart库爆红或者下载不下来。

解决:建议执行flutter doctor命令去下载dart sdk

(2)没有配置国内镜像和创建相关缓存文件夹。导致下载很慢。

在C盘的Flutter缓存目录,具体为:C:\Users\Administrator\AppData\Roaming\Pub\Cache\hosted,这里面默认是一个名为 pub.dartlang.org 的文件夹,我们现在查找看看有没有叫做 pub.flutter-io.cn 的文件夹,如果有,为了省事,建议把pub.dartlang.org的文件夹里面的文件全部 拷贝到 pub.flutter-io.cn 文件夹里面就可以了。如果没有,就创建一个名为 pub.flutter-io.cn 的文件夹,然后再执行拷贝工作。一般来讲,配置了国内镜像的话,就会有 pub.flutter-io.cn 文件夹(不知道怎么配置的点击这里进行查看: Flutter配置安装详解)。以后如果再下载其他的库,都会缓存在pub.flutter-io.cn 文件夹里面。

10、Unable to find git in your PATH

错误如图所示:

【原因】未配置git环境变量或者配置不对。正确的应该是找到git根路径\bin ,比如你的路径是:E:\git\bin,你就把这个路径配置到环境变量中。

11、SocketException: OS Error 信号灯超时时间已到

建议:设置国内镜像,然后重启试试看。实在不行就翻墙试试看。

12、flutter不是内部或者外部命令,也不是可运行的程序或者处理文件。

【解决方案】把Flutter添加到环境变量。具体的请查看这里:开发工具总结(10)之Flutter从配置安装到填坑指南详解,有详细图文说明。

13、模拟器运行白屏问题

【解决方案有很多种,可以根据实际情况自由选择:】

(1)如果用的是Genymotion模拟器,或者其他的模拟器,可能原因是集成显卡驱动没装好,如果缺少某个驱动,建议下载驱动精灵或者品牌官网驱动安装,然后再运行模拟器试试看。

(2)如果用的是Genymotion模拟器,可能是virtualbox的版本与genymotion版本不兼容引起的。建议下载自带virtualbox的genymotion版本再试试看。

(3)打开模拟器设置界面,run->Edit Configurations 里面添加--enable-software-rendering 再次运行就OK了。

(4)建议新建模拟器时,不要勾选硬件加速,这个一般用不上,硬件加速巨坑,与某些东西不兼容。可以在AS右上角找到Android模拟器管理,找到对应的模拟器,看看你的模拟器设置里面是否有硬件加速,如果有,就换成其它的。

(5)使用原生平台的冷启动方案。Flutter已经提供了冷启动方案,下面是一个最简单的示例:

【注意】:有些人编辑android里面的xml文件的时候,会发现部分是红色的,其实你可以点击菜单open,然后选择你项目里面的android目录,然后在弹出的窗口选择open in new window,表示新开一个窗口,这样去编写代码,不会出错。

完整示例代码请查看:github.com/AweiLoveAndroid/Flutter-learning/tree/master/projects/flutter_white_screen

drawable目录有一个launch_background.xml文件,我们打开之后可以看到一个注释,意思是说:这里面的内容可以换成你的App logo或者其它内容,我们可以做一个修改,内容如下:

最后一步是修改styles.xml文件,添加两个配置item选项,示例如下:

具体的文件目录位置如下图:

最终示意图如下所示:

14、安装项目到模拟器或者手机时,Gradle task assemableDebug executing之后log停止并自动退出安装,然后应用安装不到模拟器或手机上。

问题如图所示:

【原因】:Flutter版本太低了。 【解决方案】使用flutter upgrade更新Flutter。

15、git clone下载Flutter源码仓库,出现error: RPC failed; curl 18 transfer closed with outstanding read data remaining

【原因】

由于Http协议错误,当Clone的时候,因为curl的postBuffer默认值太小的原因,而项目可能本身比较大,所以下载失败。

【解决方案:】

打开git命令行 输入 git config –global http.postBuffer 524288000,然后可以输入git config –list 查看刚才的设置是否生效。

说明: git config –global http.postBuffer 524288000 命令的意思:相当于把curl的postBuffer的值修改的大一些。524288000的单位是B,相当于500MB。

16、执行flutter命令的时候,360杀毒软件弹窗提示有病毒。

【解决方案:】

点击右下角 信任此文件 即可。建议执行flutter工程的时候,暂时关闭杀毒软件,如图所示。 有时候升级flutter的时候也会爆出这样的问题,建议关闭杀毒软件。

17、执行flutter install命令安装apk到模拟器的时候报错,报错提示是:

【原因】由于使用了native libraries 。该native libraries不支持当前的cpu的体系结构。我当前用的是x86的模拟器。

【解决方案】打开项目根目录/android/app/build.gradle,在android节点里面添加以下内容:

splits{ abi { enable true reset() include ‘x86’, ‘armeabi-v7a’,‘x86_64’ universalApk true } }

具体的请看下图所示:

如果以上操作还不行就换一个arm的模拟器或者真机运行。如下图就是运行在arm模拟器上的示范操作:

18、执行flutter upgrade命令过程中出现的问题。

【解决方案】重启命令行,重新执行flutter upgrade命令,它会自动下载sdk需要的各种工具,这说明环境是没问题的,配置也是没问题的,网络也是OK的。如下图所示:

19、编译项目的过程中出现的版本兼容问题,如图所示。

【解决方案有以下几种方式】

只要看到错误信息含有which doesn't match any version 这样的提示基本都可以使用以下解决方案:

Flutter插件版本太老,更新一下Flutter版本,再试试看。 2.  在项目的根路径的 pubspec.lock 文件和 pubspec.yaml 文件里面搜索,确保 pubspec.lock 文件的引入的第三方插件库的版本号 和 pubspec.yaml 文件里的 版本号一致 。

项目里面引入的第三方插件库版本和开发环境不匹配导致的兼容问题。建议把第三方插件库的源码下载下来,放到项目里面去,然后去 修改插件库源码里依赖的Flutter和Dart版本配置信息 即可。使用源码是最好的解决方式。

在C盘的Flutter缓存目录,具体为:C:\Users\Administrator\AppData\Roaming\Pub\Cache\hosted,这里面默认是一个名为 pub.dartlang.org 的文件夹,我们现在查找看看有没有叫做 pub.flutter-io.cn 的文件夹,如果有,为了省事,建议把pub.dartlang.org的文件夹里面的文件全部 拷贝 到pub.flutter-io.cn文件夹里面就可以了。如果没有,就 创建 一个名为 pub.flutter-io.cn 的文件夹,然后再执行拷贝工作。(一般来讲,配置了国内镜像的话,就会有 pub.flutter-io.cn 文件夹)。

然后检查一下文件夹里面有没有我们报错的那个包,如果有,请删除,然后再去点击 pub get 下载更新一下。如图所示:

20、flutter upgrade因为版本兼容问题导致升级失败。

【解决方案】这里面是因为 flutter_tools 包的兼容性问题 导致的,可能是sdk版本兼容性问题,我们可以执行 flutter upgrade 升级一下Flutter再试试看,如果不行,就按上一条的去做。

21、Unsupported Android Studio version,意思是:Flutter插件不支持当前AS版本。

【原因】

当前的AS是3.2的版本。Flutter插件对AS3.2暂时还不兼容(此问题是我在第一次创建flutter的时候出现的,时间是2018年5月份,不过现在flutter插件已经兼容AS3.2了,现在貌似没有出现这个问题了。)。

以后如果还有更新的AS版本出来,只要Flutter插件没有及时更新的话,可能还会有版本兼容的提示信息。

【解决方案】

使用3.0或者3.1版本的AS开发就OK了。

22、执行flutter upgrade命令更新Flutter时,出现SSL read: error:00000000:lib(0):func(0):reason(0), errno 10054

【解决方案】

打开git命令行输入 ·git config –global http.postBuffer524288000·,然后可以输入 ·git config –list· 查看刚才的设置是否生效。

23、使用flutter doctor命令出现的错误,这类错误可能有多种形式,它们都有一个共同的关键字 StartBitsTransferCOMException

我遇到的几个不同的错误示例图如下:

【解决方案】 原因有2个:

(1)BITS传输服务未开启:

计算机 --> 右键 管理 --> 服务和应用程序里面,点击服务,然后如下图所示:

然后选中图中标记的这个,右键点击属性,然后改成自动,确定。如下图所示:

(2)没有设置国内镜像:

如果你在国内使用 Flutter,那么你可能需要找一个与官方同步的可信的镜像站点,帮助你的 Flutter 命令行工具到该镜像站点下载其所需的资源。你需要为此设置两个环境变量:PUB_HOSTED_URL和FLUTTER_STORAGE_BASE_URL,然后再运行 Flutter 命令行工具。

需要添加国内镜像到环境变量中。具体如下:

FLUTTER_STORAGE_BASE_URL: https://storage.flutter-io.cnPUB_HOSTED_URL: https://pub.flutter-io.cn

如下图所示:如果还出现下载错误 建议重启电脑再试试看。

24、update_dart_sdk.ps1文件里面出错,有多种错误表现形式,如下面3个图所示。

我们可以看到这几种错误的共同之处:都有 BitsTransformer 或者 CategoryInfo之类的字眼。

报的错误会有各种各样,但是只要有以上提到的两种字眼的解决方式如下:

【解决方案】

建议 删除Flutter根路径/bin/cache文件夹,然后重新执行 flutter doctor 命令。

我电脑的Flutter根路径/bin/cache文件夹所在位置如下图所示:

25、 could not resolve all files for configuration ‘classpath’ could not find ling-gradle-api.jar

【解决方案:修改flutter安装目录里面的flutter.gradle全局配置

26、Please review your Gradle project setup in the android/ folder

27、android/app.gradle 里面的语法错误导致的编译失败

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

《设计思想解读开源框架》

第一章、 热修复设计

第一节、 AOT/JIT & dexopt 与 dex2oat 第二节、 热修复设计之 CLASS_ISPREVERIFIED 问题 第三节、热修复设计之热修复原理 第四节、Tinker 的集成与使用(自动补丁包生成) 第二章、 插件化框架设计 第一节、 Class 文件与 Dex 文件的结构解读 第二节、 Android 资源加载机制详解 第三节、 四大组件调用原理 第四节、 so 文件加载机制 第五节、 Android 系统服务实现原理 第三章、 组件化框架设计 第一节、阿里巴巴开源路由框——ARouter 原理分析 第二节、APT 编译时期自动生成代码&动态类加载 第三节、 Java SPI 机制 第四节、 AOP&IOC 第五节、 手写组件化架构 第四章、图片加载框架 第一节、图片加载框架选型 第二节、Glide 原理分析 第三节、手写图片加载框架实战 第五章、网络访问框架设计 第一节、网络通信必备基础 第二节、OkHttp 源码解读 第三节、Retrofit 源码解析 第六章、 RXJava 响应式编程框架设计 第一节、链式调用 第二节、 扩展的观察者模式 第三节、事件变换设计 第四节、Scheduler 线程控制 第七章、 IOC 架构设计 第一节、 依赖注入与控制反转 第二节、ButterKnife 原理上篇、中篇、下篇 第三节、Dagger 架构设计核心解密 第八章、 Android 架构组件 Jetpack 第一节、 LiveData 原理 第二节、 Navigation 如何解决 tabLayout 问题 第三节、 ViewModel 如何感知 View 生命周期及内核原理 第四节、 Room 架构方式方法 第五节、 dataBinding 为什么能够支持 MVVM 第六节、 WorkManager 内核揭秘 第七节、 Lifecycles 生命周期 本文包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

3316021950)]

第八章、 Android 架构组件 Jetpack

第一节、 LiveData 原理 第二节、 Navigation 如何解决 tabLayout 问题 第三节、 ViewModel 如何感知 View 生命周期及内核原理 第四节、 Room 架构方式方法 第五节、 dataBinding 为什么能够支持 MVVM 第六节、 WorkManager 内核揭秘 第七节、 Lifecycles 生命周期 [外链图片转存中…(img-TNLBzuQd-1713316021951)] 本文包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中… [外链图片转存中…(img-0GHx1t5H-1713316021952)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

推荐阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: