Android Studio生成我的.apk文件在哪里?

158
我一直在从头开始重建我的项目,所以它有很多问题。现在,一切都很好,除了当我尝试运行应用程序时,我收到消息“本地路径不存在”,其中本地路径指向路径:AndroidStudioProjects\MyProject\MyProject..\build\production\MyProject.apk,确实,在该位置或者项目文件系统中的任何其他位置都没有.apk文件。
然而,我可以毫无问题地构建应用程序,并且运行gradlew packageDebug会给我“构建成功”的消息,所以应该正在生成.apks文件。我的问题是,它们去哪里了?如果它们没有被生成,为什么没有?
每个模块的构建路径在哪里设置?我有些困惑,因为Project Structure->Facets->Android->Compiler设置、Project Structure->Modules->Paths->Compiler Output、build.gradle和MyProject.iml似乎都与构建路径有关,但我不太明白它们之间的关系。
编辑:我知道它应该在哪里,但它不在那里,所以我想知道如何更改构建路径。
编辑2:由于某种原因,运行gradlew build确实创建.apks文件,但从程序内部构建或运行则没有。
编辑3:这是我的gradlew build输出,请注意它确实成功构建。
Creating properties on demand (a.k.a. dynamic properties) has been deprecated and is scheduled to be removed in Gradle 2.0. Please read http://gradle.org/docs/current/dsl/org.gradle.api.plugins.ExtraPropertiesExtension.html for information on the replacement for dynamic properties.
Deprecated dynamic property: "target" on "com.android.build.gradle.LibraryExtension_Decorated@9e9aabc", value: "android-16".
:TwoWayLib:mergeReleaseProguardFiles UP-TO-DATE
:TwoWayLib:packageReleaseAidl UP-TO-DATE
:TwoWayLib:prepareReleaseDependencies
:TwoWayLib:compileReleaseAidl UP-TO-DATE
:TwoWayLib:generateReleaseBuildConfig UP-TO-DATE
:TwoWayLib:mergeReleaseAssets UP-TO-DATE
:TwoWayLib:compileReleaseRenderscript UP-TO-DATE
:TwoWayLib:mergeReleaseResources UP-TO-DATE
:TwoWayLib:processReleaseManifest UP-TO-DATE
:TwoWayLib:processReleaseResources UP-TO-DATE
:TwoWayLib:compileRelease UP-TO-DATE
:TwoWayLib:processReleaseJavaRes UP-TO-DATE
:TwoWayLib:packageReleaseJar UP-TO-DATE
:TwoWayLib:packageReleaseLocalJar UP-TO-DATE
:TwoWayLib:packageReleaseRenderscript UP-TO-DATE
:TwoWayLib:bundleRelease UP-TO-DATE
:Rogue:prepareRogueProjectTwoWayLibUnspecifiedLibrary UP-TO-DATE
:Rogue:prepareDebugDependencies
:Rogue:compileDebugAidl UP-TO-DATE
:Rogue:generateDebugBuildConfig UP-TO-DATE
:Rogue:mergeDebugAssets UP-TO-DATE
:Rogue:compileDebugRenderscript UP-TO-DATE
:Rogue:mergeDebugResources UP-TO-DATE
:Rogue:processDebugManifest UP-TO-DATE
:Rogue:processDebugResources UP-TO-DATE
:Rogue:compileDebug UP-TO-DATE
:Rogue:dexDebug UP-TO-DATE
:Rogue:processDebugJavaRes UP-TO-DATE
:Rogue:validateDebugSigning
:Rogue:packageDebug
:Rogue:assembleDebug
:Rogue:prepareReleaseDependencies
:Rogue:compileReleaseAidl UP-TO-DATE
:Rogue:generateReleaseBuildConfig UP-TO-DATE
:Rogue:mergeReleaseAssets UP-TO-DATE
:Rogue:compileReleaseRenderscript UP-TO-DATE
:Rogue:mergeReleaseResources UP-TO-DATE
:Rogue:processReleaseManifest UP-TO-DATE
:Rogue:processReleaseResources UP-TO-DATE
:Rogue:compileRelease UP-TO-DATE
:Rogue:dexRelease UP-TO-DATE
:Rogue:processReleaseJavaRes UP-TO-DATE
:Rogue:packageRelease
:Rogue:assembleRelease
:Rogue:assemble
:Rogue:check UP-TO-DATE
:Rogue:build
:TwoWayLib:mergeDebugProguardFiles UP-TO-DATE
:TwoWayLib:packageDebugAidl UP-TO-DATE
:TwoWayLib:prepareDebugDependencies
:TwoWayLib:compileDebugAidl UP-TO-DATE
:TwoWayLib:generateDebugBuildConfig UP-TO-DATE
:TwoWayLib:mergeDebugAssets UP-TO-DATE
:TwoWayLib:compileDebugRenderscript UP-TO-DATE
:TwoWayLib:mergeDebugResources UP-TO-DATE
:TwoWayLib:processDebugManifest UP-TO-DATE
:TwoWayLib:processDebugResources UP-TO-DATE
:TwoWayLib:compileDebug UP-TO-DATE
:TwoWayLib:processDebugJavaRes UP-TO-DATE
:TwoWayLib:packageDebugJar UP-TO-DATE
:TwoWayLib:packageDebugLocalJar UP-TO-DATE
:TwoWayLib:packageDebugRenderscript UP-TO-DATE
:TwoWayLib:bundleDebug UP-TO-DATE
:TwoWayLib:assembleDebug UP-TO-DATE
:TwoWayLib:assembleRelease UP-TO-DATE
:TwoWayLib:assemble UP-TO-DATE
:TwoWayLib:check UP-TO-DATE
:TwoWayLib:build UP-TO-DATE

BUILD SUCCESSFUL

Total time: 10.848 secs

无需解释,按照Alex所说的方式进行操作即可。如果不放心,您可以查看上面的答案。 - Gru
https://dev59.com/PGQn5IYBdhLWcg3wt5Eg#29097183 - duggu
我的在./app/release/app-release.apk。 - Steve Smith
17个回答

206

你的应用程序\app\build\outputs\apk


1
这是新的位置。 - Krylez
谢谢 - 我在那里找到了适用于Android Studios 1.1的内容。 - Simon
在更新的版本中,它位于YourApplication\app\build\outputs\apk*.apk。 - Teerakiat Chitawattanarat
7
截至2020年1月:YourApplication/android/app/build/outputs/apk/release/app-release.apk - Ben Pritchard
1
如果您生成了一个Android App Bundle(AAB):YourApplication\app\release\app-release.aab - mystack
显示剩余3条评论

32

你应该构建你的应用程序而不是调试过程。只需按照以下步骤:

Build -> Build Bundles/APK(s) -> Build APK(s)

enter image description here


如果有人想知道文件的存储位置,就像我在尝试之前那样,当进程完成时,在Android Studio右下角会出现一个小对话框,其中包含一个链接,您可以单击它以在您的文件管理器应用程序(例如Windows中的文件资源管理器)中打开文件夹。 - hBrent

25

在 Android Studio 中编译我的 代码 后,我在此处找到了它:

~\MyApp_Name\app\build\outputs\apk\app-debug.apk


24

前往 AndroidStudio 项目文件

  1. 选择项目名称,
  2. 选择应用程序,
  3. 选择构建,
  4. 选择输出,
  5. 选择 APK 文件.

如果您在 AVD 或实际设备上运行了应用程序,您会在这里找到应用程序的 APK 文件。


2
奇怪,我正在使用Android Studio 3.2,在您提到的构建目录中,只有“intermediates”目录,缺少“Outputs”。 - Allan Ruin
@AllanRuin,你构建了APK吗? - kelalaka
请详细说明您提到的步骤。 - Shubham Arya
1
@ShubhamArya 和其他人,请确保您在项目导航器中处于“项目视图”而不是“Android视图”,然后这将更有意义。 - Panama Jack

15

最新的 Android Studio 版本是Chipmunk|2021.2.1 Patch 2Apk 文件的路径如下:

MySampleAndroidApp\app\build\intermediates\apk\debug\app-debug.apk

11

我遇到了找不到调试版apk的问题。在Android Studio 0.8.6中,项目的project/project/build/路径中没有显示出apk甚至输出文件夹。但是,当我从Windows文件夹浏览器中检查了同样的路径project/project/build/时,我发现那里有一个名为“output”的文件夹,里面有调试版apk。


如果您打开了此位置并且执行“清理项目”操作,资源管理器会崩溃得非常严重 =) - J.G.Sebring
简直不敢相信我浪费了这么多时间,只是因为我忘记了 Android Studio 并不总是显示所有的目录... - Jon McClung

10
在 Android 3.1.0 及以上版本中,使用以下路径查找已签名的 APK 版本。
home/AndroidStudioProjects/<projedct name>/app/app-release.apk

在Windows中

AndroidStudioProjects\{project name}\app\release\app-release.apk

9

针对 Android Studio:

如果您还没有至少构建一次 APK,则可能找不到 /Outputs/APK 文件夹。在 Android Studio 中选择“Build”选项,其中最后三个选项之一是“Build APK”,选择它。然后它将创建该文件夹,您将在其中找到您的 APK 文件。


以上所有方法都对我无效,但这个有效。在“构建APK”之后,它还会弹出一个对话框告诉您“定位”您的apk,多么方便! - Ng Sek Long

8

您可以在

project -> app (or your main app module) -> build -> outputs -> apk

这是最新的版本,对我来说非常有效,尤其是如果你正在寻找发布版。我使用的是Android Studio Dolphin | 2021.3.1 Canary 9。 - Daniel Iroka

7
我的应用程序的apk文件位于以下位置:C:\Users\haseeb_mir\AndroidStudioProjects\MyTestApp\app\build\outputs\apk\debug

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接