【问题标题】:How to build a 'release' APK in Android Studio?如何在 Android Studio 中构建“发布”APK?
【发布时间】:2013-11-06 08:05:48
【问题描述】:

我正在尝试构建一个可以上传到 Play 商店的 APK。

当我在 Android Studio(版本 0.3.1)中选择 Build|Generate Signed APK... 时,我会被定向到如何在“gradle build scripts”中正确设置签名过程的链接:

http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Signing-Configurations

不幸的是,在检查了该页面后,我不知道要编辑什么文件以及要放入什么文件——我来自 Visual Studio 背景,所以懒惰地期待东西“正常工作”:)。

(在确定 Android Studio 的警告消息后,AS 会打开一个生成签名的 APK 向导,我通过了该向导,传递了我的密钥详细信息。生成的 APK 被 Play 商店拒绝,因为它的密钥太快了到期日)。

我还尝试按照上述消息中的说明打开 Android Studio 终端窗口并运行“gradle”,但未找到此命令。顺便说一句,既然运行命令可能会做一些有用的事情,我将如何运行 gradle?

我在 A.S. 中发现了一个“Gradle”窗口。 IDE,并尝试构建在该窗口中找到的 assembleRelease 目标。但是,运行窗口输出只显示“Executing external task 'assembleRelease'...”。

【问题讨论】:

  • 到期日期必须在某个日期之后。现在是 2033 年 10 月 22 日。developer.android.com/tools/publishing/app-signing.html
  • 我使用 Android 文档中关于使用密钥库的设置创建了密钥。我想可能它只是没有使用密钥或其他东西。我不会太在意那个细节。然后又是在使用 Android 开发工具两天的痛苦之后,谁知道...
  • 尝试使用ADT+Eclipse developer.android.com/sdk/installing/bundle.html。它具有您期望从 IDE 获得的 GUI,例如构建、运行、调试、导出发布 apk。 AndroidStudio 目前是 alpha 版本,还需要完善。
  • 我决定采纳你的建议@plastiv。当 Android Studio 更稳定时会很好 - 我使用 Resharper 所以习惯了一些快捷方式。
  • 是我还是过期日期可疑地接近末日? en.wikipedia.org/wiki/Year_2038_problem

标签: android gradle android-studio


【解决方案1】:

按照以下步骤操作:

-Build
-Generate Signed Apk
-Create new

然后填写“New Key Store”表格。如果您想更改 .jnk 文件的目标位置,请在目标位置选择并命名以获取“确定”按钮。完成后会得到“密钥库密码”、“密钥别名”、“密钥密码” 按下一步并更改您的目标文件夹。 然后按完成,仅此而已。 :)

【讨论】:

  • .jks 文件这是什么,我在哪里可以得到它?
  • “新建”用于创建新的 .jks 文件。您只需要选择一个目录来创建它。 jks 文件用于应用程序认证。如果您需要更新您的应用程序以播放商店,那么您必须选择相同的 jks 文件。所以保持安全。 :)
  • 出现错误 无法下载 intellij-core.jar (com.android.tools.external.com-intellij:intellij-core:26.1.3):没有可用于离线模式的缓存版本
  • @HariKiranVusirikala 需要互联网来构建。请检查您的互联网连接。
  • @Black 第一次您必须创建新密码,然后再次使用该密钥库,您必须记住该密码。
【解决方案2】:

在 Android Studio 中单击 \Build\Select Build Variant...。 并选择release

【讨论】:

  • 这个按钮对我来说是灰色的
【解决方案3】:

AndroidStudio 目前是 alpha 版本。所以你必须自己编辑 gradle build 脚本文件。将下一行添加到您的 build.gradle

android {

    signingConfigs {

        release {

            storeFile file('android.keystore')
            storePassword "pwd"
            keyAlias "alias"
            keyPassword "pwd"
        }
    }

    buildTypes {

       release {

           signingConfig signingConfigs.release
       }
    }
}

要在模拟器或设备上实际运行您的应用程序,请运行 gradle installDebuggradle installRelease

您可以从 AndroidStudio 向导创建 helloworld 项目,以查看所需的 gradle 文件结构。或者从正在工作的 eclipse 项目中导出 gradle 文件。还有这个系列文章很有帮助http://blog.stylingandroid.com/archives/1872#more-1872

【讨论】:

  • 还有问题吗?注意出现的顺序很重要,见*.com/a/22791482/190599
  • 我找不到gradle installRelease!我只看到gradle installDebuggradle installDebugTest
  • 使用./gradlew installRelease