Android 自动增量版本代码渐变任务未按预期执行

Android 自动增量版本代码渐变任务未按预期执行,android,gradle,android-gradle-plugin,Android,Gradle,Android Gradle Plugin,我想自动化android gradle版本控制,我的要求是 版本代码版本名 所以我在java应用程序中运行了代码 代码: publicstaticvoidmain(字符串[]args){ int fileVersionCode=1; 字符串fileVersionName; 对于(int i=0;i

我想自动化android gradle版本控制,我的要求是

版本代码版本名

所以我在java应用程序中运行了代码

代码:

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)
转换来修剪不必要的小数部分