Android 自动增量版本代码渐变任务未按预期执行
我想自动化android gradle版本控制,我的要求是 版本代码版本名 所以我在java应用程序中运行了代码 代码:Android 自动增量版本代码渐变任务未按预期执行,android,gradle,android-gradle-plugin,Android,Gradle,Android Gradle Plugin,我想自动化android gradle版本控制,我的要求是 版本代码版本名 所以我在java应用程序中运行了代码 代码: publicstaticvoidmain(字符串[]args){ int fileVersionCode=1; 字符串fileVersionName; 对于(int i=0;i
publicstaticvoidmain(字符串[]args){
int fileVersionCode=1;
字符串fileVersionName;
对于(int i=0;i<200;i++){
如果(fileVersionCode=20&&fileVersionCode%10==0){
fileVersionName=((fileVersionCode/10))+“.9”;
}否则{
fileVersionName=(1+(fileVersionCode/10))+“+((fileVersionCode%10)-1);
}
System.out.println(fileVersionCode+“”+fileVersionName);
fileVersionCode++;
}
}
我的代码按预期工作,但在gradle中使用相同的代码
task firstTask {
doFirst {
int fileVersionCode = 1;
String fileVersionName;
for (int i = 0; i < 200; i++) {
if (fileVersionCode <= 10) {
fileVersionName = "1." + (fileVersionCode - 1);
} else if(fileVersionCode>=20 && fileVersionCode%10 ==0) {
fileVersionName = ( (fileVersionCode / 10)) + ".9";
}else {
fileVersionName = (1 + (fileVersionCode / 10)) + "." +( (fileVersionCode % 10)-1);
}
System.out.println(fileVersionCode+" "+fileVersionName);
fileVersionCode++;
}
}
doLast{
// println 'firstTask doLast'
}
}
task firstTask{
首先{
int fileVersionCode=1;
字符串fileVersionName;
对于(int i=0;i<200;i++){
如果(fileVersionCode=20&&fileVersionCode%10==0){
fileVersionName=((fileVersionCode/10))+“.9”;
}否则{
fileVersionName=(1+(fileVersionCode/10))+“+((fileVersionCode%10)-1);
}
System.out.println(fileVersionCode+“”+fileVersionName);
fileVersionCode++;
}
}
多拉斯特{
//打印'firstTask doLast'
}
}
运行:>gradlew firstTask
输出是不同的,为什么我会这样
在groovy中,如果操作数的类型为
Integer
,则除法会产生一个BigDecimal
,而在Java中,它们的类型为int
当fileVersionCode
为11
时,结果:
(fileVersionCode / 10)
在Java中转换为
1
,但在Groovy中转换为1.1
。为了解决这个问题,只需添加一个(int)
强制转换来修剪不必要的小数部分。在groovy中,如果操作数的类型为整数,则除法会产生一个BigDecimal
,而在Java中则是int
类型
当fileVersionCode
为11
时,结果:
(fileVersionCode / 10)
在Java中转换为1
,但在Groovy中转换为1.1
。为了解决这个问题,只需添加一个(int)
转换来修剪不必要的小数部分