Android Studio 3.0无法生成已签名的APK。

46

在更新安卓工作室至3.0版本(Windows)后,我无法生成已签名的APK文件。

这里输入图片描述

当编译完成后,我收到如下消息:

这里输入图片描述

点击“定位”会带我到APP文件夹,但是找不到任何APK文件。

有什么变化吗?


你用的设备是什么?Windows、Mac 还是 Linux?我刚刚更新了,现在正常运行。 - Niraj Sanghani
确保你的文件夹项目是否可见。 - IntelliJ Amiya
1
@NirajSanghani “C:\apps\app” 这个路径看起来像是 Linux 吗? - Selvin
您能访问到这个文件夹并且具有写入权限吗? - Rinav
只是想帮忙,放松点,很抱歉错过了。 - Niraj Sanghani
显示剩余2条评论
9个回答

68

自从 Android Studio 3.0 更新以来,生成的 apk 将会在

{project-folder}/app/release/app-release.apk

还有一个文件被生成,名为Output.json,其中包含apk生成的详细信息。

示例:

[  
   {  
      "outputType":{  
         "type":"APK"
      },
      "apkInfo":{  
         "type":"MAIN",
         "splits":[  

         ],
         "versionCode":1
      },
      "path":"app-debug.apk",
      "properties":{  
         "packageId":"njscommunity.xxxxx",
         "split":"",
         "minSdkVersion":"19"
      }
   }
]

所有的一切都取决于Gradle构建,因此最终它都取决于你使用的Gradle版本,例如:用于Android Studio的Gradle Android插件。


2
只有在通过运行发布版本时才是正确的,但如果您手动生成发布版本,则会在选择位置生成。 - Rinav
2
这对我不起作用。我遇到了与 OP 相同的问题,但没有 /app/release 文件夹。只有 /app 文件夹,这通常是生成的位置,但没有“release”文件夹。似乎根本没有任何东西被生成。 - therealone
1
我的实际路径是在{project_folder}/{module_name}/production/release。 - yarell
Android Studio以前会在您选择的文件夹中创建一个app-release.apk文件。现在,它会生成一个名为release的文件夹,然后将其放在其中。令人困惑的是,当您在完成框中单击“定位”时,它仍会将您带到您选择的文件夹,而不是生成的release文件夹...我花了半个小时才弄清楚... - Jesbus
因为它没有解决 OP(和我的)问题,所以我要点个踩。@Sahil Kapoor 帮了我。 在我看来,点击气球消息中的“定位”会导致选择的目录而不是 apk 所在的目录,这是不一致的。我应该在哪里提交错误报告? - Raul Pinto
显示剩余11条评论

29

Android Studio 3.0现在会在指定的目标文件夹中创建一个"release"文件夹,并将发布的apk放置其中。

{APK目标文件夹}\release\app-release.apk

或者如@velis所提到的:

{APK目标文件夹}\{flavor}\{variant}\{apk名称}.apk

例如: 在您的情况下:C:\apps\app\release\app-release.apk


1
这非常接近,但“variant”实际上是“flavor”和“build type”的组合。因此,如果您有两种口味dev和production,以及两种构建类型debug和release,则有四种可能性,文件夹将为{APK目标文件夹}\{Flavor}\{BuildType}\{apkname}.apk - Mike
1
我花了好几个小时才找到它,原来它在{flavor}文件夹里面。 - NewestStackOverflowUser

12

在我的情况下,我发现apk文件在文件夹 {指定目的地}/{风味名称}/发布文件夹 中。


8

我在升级到Android Studio 3.0(Windows)后遇到了完全相同的问题。

经过数小时的寻找解决方案,我发现这个简单的操作就解决了我的问题:

将apk目标路径更改为不同的路径。(对我来说是C:)

生成签名APK对话框


2

Sahil Kapoor几乎正确:

生成的文件路径是您指定的目标文件夹 + {flavor}/{variant}/

{destination} / {flavor} / {variant} / {apkname}.apk


2
我也遇到了同样的问题。降级几个小时后,问题得以解决。
classpath 'com.android.tools.build:gradle:3.0.0'  

为了

classpath 'com.android.tools.build:gradle:2.3.3'

我已经在build.gradle文件中解决了这个问题。


1
Gradle 3.0.0是一个非常重要的版本,带来了许多变化。降级并不是解决方案。 - VipulKumar
我知道。但如果你需要紧急发布到市场,我更愿意正确签署我的APK。你可以始终使用gradle 3.0.0并仅更改以生成发布版本。 - TonyL
事实上,我更喜欢签署一个APK,但在我更新到gradle 3.0.0之后,我无法这样做。对我来说这是有效的,所以如果3.0.0对所有人都不起作用,你是在说解决方案是更新到3.0.0而不是签署任何APK吗??顺便感谢您的负面反馈。 - TonyL
我点赞了这个回答,因为它在短期内对我有用。但我理解这不是一个非常令人满意的解决方法。 - alx60531
当然!谢谢。现在正确的答案是Sahil Kopoor提出的那个,但当我回答时它不起作用。 - TonyL

0
另一件事是,Android Studio 3.0 将使其成为 .aab 文件,即应用程序包文件。这使您可以在 Google Play 中进行代码签名,因此您不必在本地拥有密钥。这里有一个答案,告诉您如何做到这一点。如何启用 Google Play 应用签名 这似乎是朝着正确方向迈出的一步,即使实际操作时并不是非常清楚。

0

对于我的情况,一切都正确,但是Android Studio没有生成APK文件,我也没有收到任何错误消息。

之前,我更新了我的包名com.test.package > com.final.name.package,使用重构的方式一切顺利,甚至创建一个未签名的APK文件。

最后,我发现我的gradle中的applicationId仍然是旧的包名,当我将其更改为新的包名后,签名APK文件就可以成功生成了。


0

对我来说,这个东西是有效的:

  1. 检查 APK 将被生成的文件夹。通常它将是 Android Studio 项目 > app > release
  2. 如果该文件夹中有 "app-release.apk",请删除该文件并尝试重新生成已签名的 APK。

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