您的位置:首页 > 产品设计 > UI/UE

gradle:build.number 获取不到导致的error

2016-01-08 13:32 513 查看
错误描述

Error:(159, 0) Cannot invoke method toInteger() on null object
"openFile:E:\software\zjjRepository\svn\sdxd\build.gradle">Open File




产生原因

先来看一段build.gradle 中获取版本号的的代码

def getVersionCode() {
def versionFile = file('local.properties')

if (versionFile.exists()) {
def Properties versionProps = new Properties()
versionProps.load(new FileInputStream(versionFile))
def versionCode = versionProps['build.number'].toInteger()
println('Current version code is ' + versionCode.toString())
return versionCode
} else {
throw new GradleException("Could not find version.properties!")
}


错误说的是build.number 是空的,也就是说没有取到,这个是从哪取的呢,代码中显示的是local.properties 这个文件中,显然不对。首先我要承认,我对gradle并不熟悉,纯属瞎推理,之后从网上搜了下,大致说的是版本号单独放到一个文件里,里面只有一个build.number ,所以 local.properties一般只放一个sdk的路径的
sdk.dir
,so,之后发现project中有一个sys.properties的文件,里面正好写的是build.number=3



很显然,build.gradle 里面写错了 改正之后就不载报那个错了。



之后又报了个别的错,就提个醒,项目中有很多的额复制粘贴,但是gradle在编译的时候是非常严格的,最好确认下,该改的都改了 例如 applicationId ,这个保持个Androidmanifest 中的package 是相同的。注意下哦。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: