为了优化的工作. 想到尝试一下yoga. 发现这东西需要buck的支持.
并且知道buck可以加快android的项目编译速度. 而且是大幅度加快.
于是今天专门学习一下buck的使用.
经历是黑色的.
https://buckbuild.com/setup/getting_started.html
首先发现, 使用windows开发就是被鄙视的.
buck才开始支持win10 , 好在我已经是win10的系统了. 但是版本太低, 需要升级到1703 以上.
好的, 按照他的指引, 下载了一个莫名其妙的升级程序, 升级, 貌似一切正常, 但是电脑自动重启后, 再也没能醒过来.
经过一夜的等待, 今天上午我只好求助公司it, 重装了系统.
重装之后, 发现系统版本已经高于1703了. 不死心, 既然这一步搞定了, 再试试吧.
需要打开win10的开发者模式
需要开启win10的长路径功能.
安装ant , git , python2.7 , watchman
然后按照指导, 运行命令
git clone https://github.com/facebook/buck.git
----这步比较费时. 完成之后, 会生成一个buck目录.
进入
cd buck
ant
执行 又需要等一会.
.\bin\buck build --show-output buck
报错:
.\bin\buck : 无法加载文件 C:\DEV\buck\buck\bin\buck.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.mic
rosoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1
.\bin\buck build --show-output buck
CategoryInfo : SecurityError: (:) [],PSSecurityException
FullyQualifiedErrorId : UnauthorizedAccess
解决方法:
Windows PowerShell 现用执行策略很可能是Restricted(默认设置)。 Restricted 执行策略不允许任何脚本运行。若要了解计算机上的现用执行策略,请键入:get-executionpolicy 。若要在本地计算机上运行您编写的未签名脚本和来自其他用户的签名脚本,请使用以下命令将计算机上的执行策略更改为 RemoteSigned:Set-ExecutionPolicy -Scope CurrentUser,输入RemoteSigned作为执行策略的值即可解决。
关键: 执行:Set-ExecutionPolicy -Scope CurrentUser
再次执行.\bin\buck build --show-output buck
报错:
NKNOWN ERROR: com.google.common.util.concurrent.ExecutionError: java.lang.AssertionError: D:\Android\sdk\ndk-bundle\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin\arm-linux-androideabi-gcc doesn't exist.
com.google.common.util.concurrent.ExecutionError: com.google.common.util.concurrent.ExecutionError: java.lang.AssertionError: D:\Android\sdk\ndk-bundle\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin\arm-linux-androideabi-gcc doesn't exist.
我的系统里明明有这个文件, 可偏偏说找不到, 应该是后缀名的问题, 但是不知道怎么解决. 郁闷啊.
从入门到放弃!
9.3日重新尝试了一把, 在windows上仍然不成功, 还是同样的错误, 找不到\prebuilt\windows-x86_64\bin\arm-linux-androideabi-gcc
即使修改了源码, 重新编译成功了, 但是好像无法替换buck可执行文件.
生成的buck.pex不能在我的windows10 环境中执行, 目前还没找到好办法.
甚至尝试了切换到Ubuntu中重复这个过程, 还未完成.