当前位置: 首页>移动开发>正文

andorid studio flutter代码不补全func flutter源代码

前言

flutter源码下载其实很简单,但是官网上少了切换depot_tools分支的操作,导致无法下载成功,会报各种错误。
其次flutter源码下载用到gitcipd(下载二进制大文件速度极快, 芜湖起飞飞飞飞~) 以及 python的openurl三种方式下载源码,由于是国内下载这三者都需要设置代理。其中python的openurl需要修改下代码。
博主凭记忆编写,不一定全,但是大体正确,其中细节就靠你们自己了。

1. 代理设置

1.1 git

git config --global http.proxy http://127.0.0.1:1234
git config --global https.proxy https://127.0.0.1:1234

1.2 cipd

虽然我们还没拿到cipd_client,但是可以先设置环境变量。
cipd设置代理的原理可以参考下:

# 不要加http:// 或者https://   cipd识别不了
export HTTP_PROXY=127.0.0.1:1234  
export HTTPS_PROXY=127.0.0.1:1234
// 有时候还是这样才好使
// HTTP_PROXY=192.168.1.101:41091 HTTPS_PROXY=192.168.1.101:41091  DEPOT_TOOLS_UPDATE=0 gclient sync

1.3 openurl

需要下载flutter源码以后,才能进行修改,后面写。
需要下载flutter源码以后,才能进行修改,后面写。
需要下载flutter源码以后,才能进行修改,后面写。

2. 下载google的工具箱 depot_tools

2.1 介绍

depot_tools包含下载flutter源码的gclient shell脚本,以及下载cipd的cipd_client 二进制工具。

2.2 下载

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

2.3 切换分支

depot_tools刚下载过来是在master分支的,master分支的gclient不能正常工作,和flutter中DEPS是冲突的,因此需要切换到origin master分支.

# 查看本地是否存在main分支
	git branch
	# 查看远程分支是否存在main分支
	git branch -a
	# 分支同步
	git fetch
	# 切换分支
	git checkout origin/main

2.4 环境设置

depot_tools运行默认会自动更新,我们下载的最新的,就不需要更新了

export DEPOT_TOOLS_UPDATE=0

depot_tools使用cipd_client下载时,需要设置代理服务器,通过环境变量设置即可,其中cipd_client的代理设置原理查看:

export HTTP_PROXY=http://127.0.0.1:1234
export HTTPS_PROXY=https://127.0.0.1:1234

这样gclient就能开始正常工作了

3. 下载flutter完整源码

flutter核心是flutter_engine。
flutter_engine依赖的库以及编译工具和编译环境,通过gclient管理的体系进行管理。
也就是我们先拿到flutter_engine的源码,然后再通过gclient下载所有的依赖,然后用google提供的编译工具,参照sony官网的提示https://github.com/sony/flutter-embedded-linux/wiki/Building-Flutter-Engine-from-source,就可以直接编译通过。

3.2 创建.gclient

depot_tools中的gclient脚本会根据.gclient内容下载源码,大伙直接复制粘贴以下内容,保存到.gclient中即可。至于在什么目录下你们随意。

solutions = [
  {
    "managed": False,
    // 将flutter_engine的源码至当前路径下的src/flutter中
    "name": "src/flutter",
    "url": "https://github.com/flutter/engine.git",
    "custom_deps": {},
    "deps_file": "DEPS",
    "safesync_url": "",
    "custom_vars" : {
    	# 博主好像为了解决某些依赖库中不知道platform变量的问题,加了这个
		"platform":"linux"
    },
  },
]
target_os = ["linux"]

3.3 glient下载源码

执行gclient下载源码:

gclient sync

3.4 可能遇到的问题

可能1:

DEPS中不仅指定了依赖的库的本地保存路径,下载链接还有下载的版本号。
有的版本号已经不存在了,导致gclient下载失败

解决1:

这种情况下可以使用git clone直接下载不带版本号的链接并保存到对应的本地路劲

可能2:

python使用urlopen下载失败。
出现问题位置:
	src/third_party/dart/build/linux/sysroot_scripts/install-sysroot.py

解决2:

openurl(url, proxies={'http':'127.0.0.1:1234', 'https':'127.0.0.1:1234'})

可能3:

dart源码中的DEPS找不到变量platform

解决3:

通过“.gclient”文件中的custom_vars添加



https://www.xamrdz.com/mobile/4fx1937317.html

相关文章: