The APK file does not exist on disk

原创 2016年05月25日 18:03:55

背景

如果你使用Android studio 遇到这个问题,那么一般你是想对编译时生成的apk文件进行自定义命名,并且你的命名规则包含动态部分,比如,命名规则中使用了时间戳。由于gradle在执行编译命令和安装命令时有时间差,且调用了两次你的名称规则,导致编译出来的apk名称和安装时获取到的apk名称不一致,所以它就报找不到指定的apk文件了。

场景

一般修改编译后apk文件名,在gradle是这样配置的

android {
    applicationVariants.all{variant->
        variant.outputs.each{output->
            if(variant.buildType.name.equals('release')) {
                def oldFile = output.outputFile
                def newName = 'dayjoke_V'+defaultConfig.versionName+'_'+getDate()+'-release.apk';
                output.outputFile = new File(oldFile.parent, newName)
            }
        }
    }
}

def getDate() {
    def date = new Date()
    def formattedDate = date.format('yyyy_MM_dd_HH_mm_ss')
    return formattedDate
}

但是这种命名规则是到秒级的,所以每次构建和安装时获取的文件名称都不一样,每次都会报错。

解决方案

  1. 遇到这个问题时,首先想到的是,如何让编译出来的apk文件名和要安装的文件名相同,而gradle 执行安装的task是installRelease,那么就是如何动态修改installRelease 命令中指定安装的文件名。虽然这是一个方向,但是我并不会耶没有找到修改的方法。最简单的办法就是固定apk的文件名,至少不要使用时间戳这种容易改变的命名规则。
  2. 后来找到另一种解决办法,可以使得照样使用时间戳来命名apk文件,配置如下:
android {
    applicationVariants.all{variant->
        variant.outputs.each{output->
            if(variant.buildType.name.equals('release')) {
                def oldFile = output.packageApplication.outputFile
                def newName = 'dayjoke_V'+defaultConfig.versionName+'_'+getDate()+'-release.apk';
                output.packageApplication.outputFile = new File(oldFile.parent, newName)
            }
        }
    }
}

def getDate() {
    def date = new Date()
    def formattedDate = date.format('yyyy_MM_dd_HH_mm_ss')
    return formattedDate
}

不同之处在于outputFile

output.outputFile

output.packageApplication.outputFile

通过编译执行比较,发现,前者即用来编译出apk文件,也用于安装;而后者,只是编译出apk文件。如下图:

使用output.packageApplication.outputFile
output.packageApplication.outputFile

使用output.outputFile
output.outputFile

版权声明:本文为博主原创文章,未经博主允许不得转载。

我的Android进阶之旅------>解决Android Studio编译后安装apk报错:The APK file does not exist on disk

1、错误描述今天用Android Studio编译应用后安装APK的时候,报错了,错误如下所示:The APK file build\outputs\apk\OYP_2.3.4_I2Base_6476...
  • qq446282412
  • qq446282412
  • 2016年04月25日 16:49
  • 26164

android studio dev-debug.apk does not exist on disk.

**在android studio中修改了build.gradle或其他代码时,然后run发现就出现 android studio dev-debug.apk does not exist on d...
  • u013626215
  • u013626215
  • 2016年05月21日 13:47
  • 1989

Android Studio The APK file does not exist on disk

你使用android studio开发工具   ,有时候  你clean了project     然后build    然后run    发现报错了: xxxx.apk does not exist...
  • caiwenfeng_for_23
  • caiwenfeng_for_23
  • 2016年02月01日 11:02
  • 8706

Android Studio 报 The APK file does not exist on disk

使用gradle build后,outputs/apk/ 目录下明明已经生成了目标apk,但是run的时候就是报找不到apk,如下  EmptyThrowable: The APK file xx.a...
  • jjwwmlp456
  • jjwwmlp456
  • 2016年07月13日 14:11
  • 1083

解决Android Studio编译后安装apk报错:The APK file does not exist on disk

1、错误描述 今天用Android Studio编译应用后安装APK的时候,报错了,错误如下所示: The APK file build\outputs\apk\OYP_2.3.4_I2Bas...
  • qq_35224673
  • qq_35224673
  • 2016年07月14日 11:51
  • 2817

The APK file **** does not exist on disk

今天用AS运行项目的时候报错   The APK file /** 路径**/ does not exist on disk ,clear下项目,在Gradle里面刷新一下就可以了 stackove...
  • a109340
  • a109340
  • 2016年03月06日 11:41
  • 1337

Android Studio编译后安装apk报错:The APK file does not exist on disk

1、错误日志今天用Android Studio编译应用后安装APK的时候,报错了,错误如下所示:T10:02:56 EmptyThrowable: The APK file D:\workplacel...
  • zcn596785154
  • zcn596785154
  • 2017年11月20日 09:32
  • 202

解决\build\outputs\apk\dream-debug.apk does not exist on disk错误

有一次碰到\build\outputs\apk\dream-debug.apk does not exist on disk.错误,apk一直装不到手机里。 最有效的解决方法:Build》Buid ...
  • u010248450
  • u010248450
  • 2016年06月21日 00:02
  • 2657

Debug 切换 Release 编译i The APK file does not exist on disk.Error while Installing APK

解决方案:点击右边的Gradle Projects,点击刷新按钮。如图:
  • xueshanfeihu0
  • xueshanfeihu0
  • 2017年02月06日 16:32
  • 474

APK file does not exist on disk问题解决

今天遇到了一个问题:The APK file E:\hdtest\app\build\outputs\apk\movietest.apk does not exist on disk.出现apk文...
  • baidu_31093133
  • baidu_31093133
  • 2016年09月14日 11:35
  • 1576
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:The APK file does not exist on disk
举报原因:
原因补充:

(最多只允许输入30个字)