Android 磁盘上不存在APK文件
当我在Android Studio上尝试调试应用程序时,会给出以下日志输出: APK文件 /Users/MyApplicationName/app/build/outputs/apk/app-debug.apk不支持 存在于磁盘上 我重新启动了Android Studio,但我无法解决这个问题。我怎样才能解决它?Android 磁盘上不存在APK文件,android,android-studio,apk,Android,Android Studio,Apk,当我在Android Studio上尝试调试应用程序时,会给出以下日志输出: APK文件 /Users/MyApplicationName/app/build/outputs/apk/app-debug.apk不支持 存在于磁盘上 我重新启动了Android Studio,但我无法解决这个问题。我怎样才能解决它? 谢谢如果你只想知道结论,请转到最后一节。谢谢 通常,当构建项目失败时,您可以尝试一些常见技巧: 构建->清洁项目 检查构建变体 重新启动Android Studio(如您所述) 但
谢谢如果你只想知道结论,请转到最后一节。谢谢 通常,当构建项目失败时,您可以尝试一些常见技巧:
- 构建->清洁项目
- 检查构建变体
- 重新启动Android Studio(如您所述)
我经常在切换git分支时看到类似的问题。对我来说,关闭Android Studio
rm-rfv~/Library/Caches/AndroidStudio*
,重启Android Studio就是问题所在。在我的例子中,执行“与Gradle文件同步项目”帮助。重新启动Andoid Studio或清除缓存都没有任何作用。我已经解决了使用顶部窗口中的“生成”选项生成apk并生成apk的问题。无需执行奇怪的操作。单击此选项以解决错误:
工具窗口>Gradle>[project]>任务>构建>构建“>在Gradle 1.5中面临同样的问题 我必须清理构建文件: 构建->清洁项目 并构建一个APK以强制完成gradle文件的完整编译和同步: 构建->构建APK
我仍然不知道这是为什么或者是如何发生的。如果你在使用Linux,请尝试设置对app/build文件夹的写入权限。我将build.gradle文件更改为litle信息,然后单击“立即同步”,就可以了。删除目录~/.gradle/caches/。在Android Studio打开时可以这样做。(请参阅pm安装错误的软件包名称) 在Android Studio上按“与Gradle文件同步项目”图标 运行项目,远程路径将是正确的 对于类Unix用户(Linux/MacOs X),请参阅命令行中的答案@,而不是删除~/.gradle/caches/:
$ cd path_to_you_project
$ touch build.gradle
然后让Android Studio构建APK,它将重置gradle缓存本身。我的问题是我在APK中添加了版本号。更改版本号并重新同步gradle为我解决了这个问题
def appendVersionNameVersionCode(variant, defaultConfig) {
variant.outputs.each { output ->
if (output.zipAlign) {
def file = output.outputFile
def removeApp = file.name.replace("app-", "")
def removeType = removeApp.replace("-release", "")
def fileName = removeType.replace(".apk", "." + defaultConfig.versionName + ".apk")
output.outputFile = new File(file.parent, fileName)
}
def file = output.packageApplication.outputFile
def removeApp = file.name.replace("app-", "")
def removeType = removeApp.replace("-release", "")
def fileName = removeType.replace(".apk", "." + defaultConfig.versionName + ".apk")
output.packageApplication.outputFile = new File(file.parent, fileName)
}
}
文件->使缓存无效/重新启动确保在日志中生成的路径中-在您的情况下: /Users/MyApplicationName/app/build/outputs/apk/app-debug.apk 文件夹“outputs”确实有一个“apk”文件夹 这是我的问题,如果它不在那里,您需要按照下面的屏幕截图在gradle中运行“assembleRelease”任务
然后将生成文件夹。我遇到了相同的问题。这是由于路径中的名称错误。路径中有一个特殊字符,如下所示: C:\User\My App\Projekte平板电脑和Handy
我删除了“&”字符,效果很好。在我的例子中,我在我的应用程序文件路径中使用了一个特殊字符。我关闭了Android Studio,并从我的应用程序文件路径中删除了“&”字符。当我重新启动项目时,一切正常。如果你尝试了上述所有答案,但没有成功,请尝试禁用”“即时跑步”功能。这一功能在我尝试了很多次之后都帮了我的忙
文件->设置->构建、执行、部署->即时运行->取消选中该复选框确保路径中没有撇号或&在清理构建之后,我也遇到了这个问题。对我来说,解决方案就是同步渐变,它对我有效。以上没有任何内容帮助了我,但我通过切换到构建工具面板中的另一种风格,然后切换回所需的风格来解决这个问题。我的问题是在文件名中包含分钟数-当生成的文件是appname_debug_0.9.0.1_170214;_2216.apk时,它查找appname_debug_0.9.0.1_170214_2217.apk,因此输出文件名代码(从别处抓获)显然是从构建中的两个不同点调用的
applicationVariants.all { variant ->
variant.outputs.each { output ->
def project = "appname"
def SEP = "_"
// def flavor = variant.productFlavors[0].name
def buildType = variant.variantData.variantConfiguration.buildType.name
def version = variant.versionName
def date = new Date();
def formattedDate = date.format('yyMMdd_HHmm')
def newApkName = project + SEP + /*flavor + */ SEP + buildType + SEP + version + SEP + formattedDate + ".apk"
output.outputFile = new File(output.outputFile.parent, newApkName)
}
}
修改文件:build.gradle(应用程序目录)。
事实上:您不应该更改此文件,只需通过此操作获取同步提示,然后同步项目。在启动之前,请确保运行/调试配置>>中有分级意识,并确保中有设置
今年是2018年。Android Studio版本是3.2.0 alpha3,我们仍然遇到这个问题。由于以上所有内容对我都不起作用,这是我的2美分: 每次发生这种情况时,我只是从comm生成apk
applicationVariants.all { variant ->
variant.outputs.each { output ->
def project = "appname"
def SEP = "_"
// def flavor = variant.productFlavors[0].name
def buildType = variant.variantData.variantConfiguration.buildType.name
def version = variant.versionName
def date = new Date();
def formattedDate = date.format('yyMMdd_HHmm')
def newApkName = project + SEP + /*flavor + */ SEP + buildType + SEP + version + SEP + formattedDate + ".apk"
output.outputFile = new File(output.outputFile.parent, newApkName)
}
}
gradlew assembleDebug
The APK file /Users/Paul/AndroidStudioProjects/android-tv-launcher/ui/build/outputs/apk/nameofapk.apk does not exist on disk.
Error while Installing APK
adb install -r <paste of relative path>