本文参考自:

参考自Stormzhang的ANDROID STUDIO系列教程五--GRADLE命令详解与导入第三方包:点击打开链接

参考自Android Studio 第一次新建Android Gradle项目超级慢的解决方案点击打开链接


前言:

注:需节约时间,直奔主题可跳过该部分:

一个相当怪异的问题

最近折腾gradle遇到一个相当怪异的问题,我的环境变量(查看命令vi ~/.bash_profile)配置如下:

export PATH=${PATH}:/Users/user/file/android/android-sdk-macosx/platform-tools
export PATH=${PATH}:/Users/user/file/android/android-sdk-macosx/tools
export GRADLE_HOME=/Users/user/file/work/gradle-2.12
export GRADLE_USER_HOME=/Users/user/.gradle
export PATH=$GRADLE_HOME/bin:$PATH
export ANDROID_HOME=/Users/user/file/android/android-sdk-macosx
export NVM_DIR="/Users/user/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm
~                                                                   
我的gradle-wrapper.properties如下:

#Mon Dec 28 10:00:20 PST 2015
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
我的GRADLE_USER_HOME=/Users/user/.gradle如下:(对这个目录的注解:如果我从控制台执行gradlew命令能顺利编译打包程序apk)

然而,当我这个目录存在并且可用的时候,那么我新建项目的时候就会非常慢导致编译不过去。

解决方案:删除这个文件夹,即可。


本文的目的:

快速编译、打包、修改、阅读他人代码,阅读sdk提供sample源码等。


正文一、通过gradlew编译打包apk:

阅读源码初体验,例如阅读该项目:点击打开链接 

一、git拉取项目:

git clone https://github.com/lgvalle/Material-Animations.git

查看项目的gradle版本,用文本打开gradle-wrapper.properties文件:例如

#Wed Nov 16 11:21:20 CST 2016
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip

当前版本为:gradle-2.10-all.zip

二、cd到项目根目录,如下图


(一)、若没有上图中graldew命令(上图第5个文件),则在命令行中运行 wrapper task 即可配置Wrapper,如下

gradle wrapper --gradle-version2.10:wrapper

除了直接在命令行执行外,也可以在build.gradle文件中添加一个 Wrapper task:

task wrapper(type:Wrapper){
gradleVersion='2.10'
}
然后执行这个task:

gradle-q wrapper


(二)、正常的姿势应该是直接执行如下命令:

执行 ./gradlew -v 来查看下项目所用的Gradle版本,如果你是第一次执行会去下载Gradle,这个过程如果不翻墙非常慢,建议翻墙。

注释:试过之后,发现,翻墙也白搭。

一个犀利的解决方案:

如果你也是mac本。那么恭喜你,可以抄我的。

查看

cat ~/.bash_profile
结果:

ebj1831:~ user$ cat ~/.bash_profile
export PATH=${PATH}:/Users/user/file/android/android-sdk-macosx/platform-tools
export PATH=${PATH}:/Users/user/file/android/android-sdk-macosx/tools
export GRADLE_HOME=/Users/user/file/work/gradle-2.12
export GRADLE_USER_HOME=/Users/user/.gradle
export PATH=$GRADLE_HOME/bin:$PATH
export ANDROID_HOME=/Users/user/file/android/android-sdk-macosx

export NVM_DIR="/Users/user/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm

此处看到我的GRADLE_USER_HOME=/Users/user/.gradle,一般mac本默认的gradle下载地址就是他。

如下图:看看里面究竟有什么:


文件夹内的内容有没有很眼熟,没有也没关系。直接上图:


理论依据:

其实:我们去网上下载的时候:是首先访问这个地址:

distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip

然后去本地地址GRADLE_USER_HOME 加上 wrapper/dists 地址拼接的地址去查看是否本地已经存在zip文件,如果存在则直接解压,否则从网络下载。

那么我可以先直接手动去网络上把gradle-2.10-all.zip下载后,直接移动到

/Users/user/.gradle/wrapper/dists这个的对应gradle版本的文件夹下的乱码文件夹下。


问题:但是有人一开始可能没有这个版本号的文件夹和它底下的乱码文件夹。那么如何去做?

直接在命令行执行

 ./gradlew -v
让它尝试下载。系统会自动新建,然后ctrl+c中断操作。就有了。
最后,复制完上面的gradle-2.10-all.zip文件后,执行

./gradlew -v
会直接解压本地的zip,然后安装完成。

接着执行 ./gradlew clean,最后执行./gradlew build,就会在app 的根目录下的app/build/outputs/apk生成apk包。例如:

/Users/user/readFuckCode/Material-Animations/app/build/outputs/apk
偶尔打包会遇到一个问题:




直接按照提示将这个lintOptions{ abortOnError false}加到当前项目的gradle里面,即可强行打包。


此处有个小技巧:

./gradlew andDep 命令:可查看当前包依赖关系,就可以在包冲突的时候,使用哪个版本包可以解决。


正文二、通过sublime文本编辑器查看、编辑修改代码:

首先解释一下为什么用sublime不用android studio,可以想像一下,

1)用一个文本编辑器打开一个代码优雅的查看。

2)用一个开发工具打开代码查看对内存的消耗,反过来考虑耗费时间的多少。

当然并非让大家开发的时候都用文本编辑器,而是阅读他人的代码时可以考虑这个快捷的办法。比如我想阅读sdk 22版本的源码,每次打开一个sample都要等待漫长的编译过程。总归是如何快捷,如何做。土豪随意。

一、提供一个sublime的下载地址官方地址,和查看源码的效果图:


看到上面的效果,是否感觉这个文本编辑器还有那么点意思?

仅仅只是查看编辑的话到这儿就可以结束了。但是,如果还想要其他更多的功能呢?比如自动提示功能,比如代码检查错误,比如选择括号成对匹配等等。

是否这些功能对一个文本编辑器要求太苛刻?不不不,我们有插件。这些都可以实现!


二、安装插件:先看看我的插件:


(1)首先安装package control,package control是插件管理器。安装了就可以安装其他插件。

1.安装方法,在package control里面打开控制台:view/show Console

 2.进package control官网有个import命令,直接复制,然后在当前sublime控制台执行。


 (2)安装各种插件:

安装了package control后,可以通过查看sublime text /preferences/package control看看是否安装成功。或者通过命令ctrl+shif+p(mac本)调用出查找,在查找中输入install能看到package control:install package调用出插件管理,然后安装根据插件名安装插件。具体插件因人而异。各位自选吧。


(3)此处有个小技巧:

1)sublime直接编译java、c++,js等等一系列的。无需额外打开控制台。Tools/build system/javac 。比如js在默认的编译里面没有,可以自定义配置路径方案如下:

1 先安装node.js

2 再在sublime里配置sublime支持编译.js代码,sublime里配置支持编译javascript脚本如下所示:
在Sublime Text中,点击 Tools -> Build System -> New build system,Sublime会打开一个文件,我们来编辑这个文件:

{
  "cmd": ["node", "$file"],
  "selector": "source.js"
}

2)sublime可以直接打开浏览器view in browser显示,比如一些H5+js的页面,每次直接可通过配置执行,配置如下:

上面的插件中有个view in browser,安装它。

然后在sublime text /preferences/package setting/view in browser中默认配置如下:(把最下面的browser改了,是哪种浏览器就改成哪个名字)

{
	"posix": {
		"linux": {
			"firefox": "firefox -new-tab",
			"chrome": "google-chrome",
			"chrome64": "google-chrome",
			"chromium": "chromium"
		},
		"linux2": {
			"firefox": "firefox -new-tab",
			"chrome": "google-chrome",
			"chrome64": "google-chrome",
			"chromium": "chromium"
		},
		"darwin": {
			"firefox": "open -a \"/Applications/Firefox.app\"",
			"safari": "open -a \"/Applications/Safari.app\"",
			"chrome": "open -a \"/Applications/Google Chrome.app\"",
			"chrome64": "open -a \"/Applications/Google Chrome.app\"",
			"yandex": "open -a \"/Applications/Yandex.app\""
		}
	},
	"nt": {
		"win32": {
			"firefox": "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe -new-tab",
			"iexplore": "C:\\Program Files\\Internet Explorer\\iexplore.exe",
			"chrome": "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe",
			"chrome64": "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe",
			"yandex": "%Local AppData%\\Yandex\\YandexBrowser\\browser.exe"
		}
	},

	"browser": "chrome64"
}









Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐