用gradle打包android_apk时遇到的一些问题

用gradle打包android apk时遇到的一些问题

1.打开终端进入到项目的根目录下,执行./gradlew -v 这时会显示gradle的版本信息,如果是第一次执行这个命令时会自动下载gradle,但需要.这个过程是很慢的,也容易出现一些问题,为了避免出现这各种问题也为了能快一些完成,可以用另一个办法,就是把下载的地址复制到浏览器中,在浏览器中下载,下载好了之后再把文件放到/User/用户名/.gradle/wrapper/dists(mac的地址)这个文件中,一定要解压之后的文件.这个时候再执行./gradlew -v命令时就不会下载了,直接显示gradle的版本信息.在网速不是很好的情况下,这种方法可以快很多.

在这个过程中有时候还会出现gradlew:Perssion Denied 这样的错误提示,解决办法是:执行chmod +x gradlew 这样就可以解决了.

如果在网上下载的demo的gradle版本跟自己的不一样,在执行这个命令时又会下载相应的版本,不想下载的话,就打开gradlewrapper.properties文件把里面的gradle版本改成自己已有的,不知道的话打开一个用自己的studio编译的文件打开相应的文件就可以看到,这样就不会下载了.

2.在执行./gradlew clean 的时候,可能会出现getting error when trying to run new project in Android Studio 2.2.1这样的错误提示, 这是因为jdk的版本问题,我之前用的是1.7的,升级到1.8就好了.

还可能出现SDK location not found .Define loaction with sdk .dir in the local,properties file or with an ANDROID_HOME environment variable.这样的错误提示,这是因为找不到sdk的路径. 执行export ANDROID_HOME=/SDK地址/(可以在sdkmanager中查看)就可以解决了.

4.执行./gradlew build 的时候会出现gradle build fails on lint task 这样的错误提示,我不懂lint是指的什么,所心查了一下lint,在维基百科中是这样解释lint的:

在电脑科学中,lint是一种工具程式的名称,它用来标记原始码中,某些可疑的、不具结构性(可能造成bug)的段落。它是一种静态程序分析工具,最早适用于C语言,在UNIX平台上开发出来。后来它成为通用术语,可用于描述在任何一种电脑程式语言中,用来标记原始码中有疑义段落的工具。

解决办法是:在app中的build.gradle文件中在这里添加lintOptions
这里有详细介绍

android {    
 // This is important, it will run lint   
 //checks but won't abort build   
    lintOptions {      
     abortOnError false   
     }
 }

总结:这是第一次使用gradle编译打包android apk,在这个过程中遇到很多问题,找了很多资料,很感谢前辈们的分享与总结,虽然在找资料的过程中很心烦,但还是坚持下来,把遇到的每一个问题都找到解决的办法,对自己来说也是一次很大的提升,至少对gradle有了更深的了解,加油!!!

你可能感兴趣的:(用gradle打包android_apk时遇到的一些问题)