Gradle自动增量并重命名APK I/O错误

had*_*z30 5 android android-studio build.gradle

我正在尝试在Android Studio中为内部版本号进行自动增量.按照这个链接,它很有效.

现在我想使用versionName重命名apk.我也成功地做到了,正如我在app\build\outputs\apk目录中看到的那样,文件就在那里.

问题生成的apk和您看到"本地路径"的Android Studio的部分没有相同的文件名.

生成的apk名称为:MyAppsName-v1.0-64-debug.apk

它寻找的"本地路径":..\app\build\outputs\apk\MyAppsName-v1.0-60-debug.apk

因此,看到"本地路径不存在"的错误是有意义的.因为"MyAppsName-v1.0-60-debug.apk"不存在.

这是我的build.gradle的片段:

 def versionPropsFile = file('version.properties')

if (versionPropsFile.canRead()) {
    def Properties versionProps = new Properties()

    versionProps.load(new FileInputStream(versionPropsFile))
    def value = 0
    def runTasks = gradle.startParameter.taskNames
    if ('assemble' in runTasks || 'assembleRelease' in runTasks || 'aR' in runTasks) {
        value = 1;
    }

    def versionMajor = 1
    def versionMinor = 0
    def versionBuild = versionProps['VERSION_BUILD'].toInteger() + 1
    def version_Code = versionProps['VERSION_CODE'].toInteger() + value

    versionProps['VERSION_BUILD'] = versionBuild.toString()
    versionProps['VERSION_CODE'] = version_Code.toString()

    versionProps.store(versionPropsFile.newWriter(), null)

    defaultConfig {
        versionCode version_Code
        versionName "v${versionMajor}.${versionMinor}-${versionBuild}"
        minSdkVersion 15
        targetSdkVersion 21
    }


    archivesBaseName = "MyAppsName" + "-" + defaultConfig.versionName;
} else {
    throw new GradleException("Could not read version.properties!")
}
Run Code Online (Sandbox Code Playgroud)