安卓系统:Gradle计算错误的apk名称



我正在使用以下代码重命名我的apk文件:

 applicationVariants.all { variant ->
            android.defaultConfig.versionName = variant.mergedFlavor.versionName;
            renameAPK(variant, defaultConfig)
        }
def renameAPK(variant, defaultConfig) {
    variant.outputs.each { output ->
        def formattedDate = new Date().format('ddMMMyy')
        def applicationName = "Myapp"

        def alignedFile = output.outputFile
        def unalignedFile = output.packageApplication.outputFile
        def fileName = applicationName + "_" + defaultConfig.versionName + "_" + variant.buildType.name + "_" + formattedDate

        //If there's no ZipAlign task it means that our artifact will be unaligned and we need to mark it as such.
        if (variant.buildType.zipAlignEnabled) {
            fileName = fileName + ".apk"
            output.outputFile = new File(alignedFile.parent, fileName)
        }
        fileName = fileName + "-unaligned.apk"
        output.packageApplication.outputFile = new File(unalignedFile.parent, fileName)

    }

这在大多数情况下都很好。然而,偶尔,我会在尝试在设备上安装应用程序时出错,上面写着:

渐变构建在1秒内完成615ms 12:37:04 PM EmptyThrowable:APK文件/上不存在build/outputs/apk/Myapp_4.0_debug_18Apr16.apk磁盘

问题是,在这种情况下,Gradle使用的日期是错误的。如果我从命令行运行gradle脚本,它会生成一个具有正确日期的apk。

然而,如果我从安卓工作室选择"运行",gradle会计算错误的文件名。

我已经尝试过使缓存无效并重新启动Android Studio。此外,清洁项目和重建。没有什么能100%解决这个问题。

其他人以前遇到过这种情况吗?

使用带有时间戳或动态计数器的APK名称效果不佳(取决于更改率),因为Android Studio将APK名称保存在缓存中。要么AS运行了一个过时的文件,要么抱怨没有APK

转到aap文件夹下的项目目录,删除生成的文件,并删除apk文件(如果存在),构建并重新运行。。希望这对有帮助

相关内容

  • 没有找到相关文章

最新更新