【问题标题】:Build unsigned APK file with Android Studio使用 Android Studio 构建未签名的 APK 文件
【发布时间】:2013-05-18 13:43:53
【问题描述】:

我正在使用 Android 开发者工具开发一个 Android 应用。 现在我尝试了新的Android Studio,如果将我的智能手机与PC连接并直接在Android Studio中运行程序,一切正常。 但现在我想用其他智能手机测试该程序,而无需将它们连接到我的电脑。

每次编译程序时,ADT 都会在“projectname/bin”下创建 .apk 文件。我目前的看法是,Android Studio 没有这样做。

所以,我的问题是:是否可以使用 Android Studio 创建未签名的 .apk 文件?

【问题讨论】:

  • 从技术上讲,您需要的是一个使用调试密钥签名的 apk。实际未签名的 apk 将被设备拒绝。
  • 仅供参考,我们应该始终更喜欢导出签名的应用程序,正如@Nirmal Dhara 所回答的那样。这样更安全。
  • @ChrisStratton 会一直被拒绝吗?
  • 我用这个解决方案解决它:stackoverflow.com/a/56201481/8471798

标签: android build apk android-studio


【解决方案1】:

我建议您使用 Gradle 构建您的 APK 文件:

  • 点击顶部工具栏中的下拉菜单(打开“编辑运行/调试配置”对话框)
  • 选择“编辑配置”
  • 点击“+”
  • 选择“Gradle”
  • 选择您的模块作为 Gradle 项目
  • 在任务中:输入assemble
  • 按运行

您未签名的 APK 现在位于

ProjectName\app\build\outputs\apk

有关如何使用 Gradle 的详细信息,本教程很好:Building with Gradle in Android Studio。我还写了一个blog post,介绍如何使用 Gradle 构建未签名的 APK。

如果您从其他 IDE 移动项目并且不想重新编译,您可能会发现您的 APK 文件已经在您从移动的 IDE 中构建:

  • 如果您使用 Android Studio 生成项目,APK 文件将位于 ProjectName/ProjectName/build/apk/...

  • 从 Eclipse 导入项目:文件应该在同一目录中。转到Project - Show in Explorer。在那里您应该可以找到您的 APK 文件所在的 bin 文件夹。

  • 从 IntelliJ 导入,位置为 ProjectName/out/production/...

旁注: 正如 Chris Stratton 在他的评论中提到的那样:

从技术上讲,您需要的是使用调试密钥签名的 APK。一个APK 实际上未签名的将被设备拒绝。

【讨论】:

  • 是的,我从 Eclipse 导入了项目。但在我的情况下,Android Studio 没有触及 bin 文件夹。经过一番搜索,我自己找到了它。就我而言,.apk 位于“projectname/out/production/projectname/”
  • 这应该只是在你从 IntelliJ 切换过来的情况下
  • 我直接使用 Studio 生成项目,但项目的任何文件夹中都没有名为“bin”的文件夹。在“build”文件夹中只有两个文件夹,即“res”和“source”,没有“bin”文件夹。你现在能给我一些建议吗?
  • Click the dropdown menu in the toolbar at the top 这太笼统了。什么下拉菜单?什么工具栏?
  • @dthree 你可以点击顶部菜单栏上的“运行”,然后从下拉菜单中选择“编辑配置”
【解决方案2】:

是的,可以使用 Android Studio 创建未签名的 .apk!

在你的包资源管理器或项目列中突出显示项目,然后File - Project Structure - Artifacts - + - Android Application - From module 'your app' 然后你可以更改位置和其他一些选项.我启用 build on make 只是为了方便。

【讨论】:

  • 它正在弹出消息“我们将提供一个 UI 来配置项目设置。在此之前,请手动编辑您的 build.gradle 文件”现在我该怎么办?跨度>
  • 如果我没有任何“神器”怎么办?
  • 点击左上角的加号就可以进入安卓应用了
  • jetbrains.com/idea/webhelp/artifacts.html 使用工件有什么意义?我认为这是生成一个未签名的 apk 调试 apk 等,但似乎只要您从 gradle 菜单运行 assemblerelease(至少在 intellij IDE 中),您就可以简单地转到 build/apk 文件夹来获取未签名的 apk。我刚刚配置了一个工件,但我无法弄清楚如何真正使用它。有人可以帮助澄清差异并使用或指出正确的方向吗?
  • @cjayem13 有些项目不使用 Gradle。
【解决方案3】:

--- 在signingConfigs中创建新配置

unsigned {
        //do not sign
    }

--- 在 buildTypes 中创建构建类型

unsigned {
        versionNameSuffix '-unsigned'
    }

--- 去构建变体并选择无符号标准。构建项目。

--- 转到“输出/apk”并找到“XXX-unsigned.apk”。要检查它是否未签名,请尝试将其安装到设备 - 你会失败。

【讨论】:

  • 这不起作用。你需要定义一个有点不同的signinigConfig(取自stackoverflow.com/a/18121401/624109signingConfigs{ unsigned{ storePassword = "" keyAlias = "" keyPassword = "" } }
【解决方案4】:

根据Build Unsigned APK with Gradle,您可以简单地使用 gradle 构建您的应用程序。 为此:

  1. 单击顶部工具栏上的下拉菜单(通常带有 android 图标和应用程序名称)
  2. 选择Edit configurations
  3. 点击左上角的加号或按alt+insert
  4. 选择Gradle
  5. 选择你的模块为Gradle project
  6. Tasks: 输入assemble
  7. OK
  8. 按播放键

之后,您应该在目录中找到未签名的“apk” ProjectName\app\build\outputs\apk

【讨论】:

  • + 使用 android { lintOptions { checkReleaseBuilds false abortOnError false } [....] } 编辑 build.gradle 并且它有效!谢谢
  • 谢谢你,marcin ...它成功了。要注意的一件事是我在 Android Studio 中找不到“outputs/apk”文件夹。它只出现在文件系统中。。跨度>
  • 在根项目“bin”中找不到任务“assemble”。
  • 第二次投票。这应该是正确答案。我在带有项目导入的干净 android studio 安装中遇到了这个问题。您必须通过此手动设置才能从构建中获取任何 apk 文件。
  • 它在 1.5.1 中工作,但即使选择了单个模块,实际上也会构建整个项目 apk。
【解决方案5】:

只需转到您的应用程序\app\build\outputs\apk

并将两者复制到手机并安装 app-debug.apk

【讨论】:

  • 真的有必要复制这两个文件吗?
【解决方案6】:

我猜是最简单的方法:

  • 在右侧打开 Gradle 选项卡
  • 双击YourProject/:app/assemble(或assembleDebug)
  • 您可以在此处找到该 apk
    .../YourProject/app/build/outputs/apk/app-debug.apk

【讨论】:

  • 谢谢,比接受的答案简单得多,并且不允许在每次运行时构建 apk
【解决方案7】:

现在在 Android Studio v1.1.0 中应该是:

  1. 选择Run > Run <your app>
  2. <your app>\build\outputs\apk中找到.apk文件

【讨论】:

  • 我使用的是 1.2.1.1 但你的方法不起作用。我必须创建一个 Gradle 程序集!
【解决方案8】:

为我完成以下工作:

如果您在 build.gradle 中进行了以下设置,请将以下设置留空。

signingConfigs {
        release {
            storePassword ""
            keyAlias ""
            keyPassword ""
        }
    }

然后从编辑器窗口中选择 Gradle Task。如果您已创建,它将显示所有风味的列表。

【讨论】:

    【解决方案9】:

    Android studio 也会在每次编译程序的时候创建apk文件,进入你的workspace文件夹,找到app->build->outputs->就可以看到apk文件了。

    【讨论】:

      【解决方案10】:

      第 1 步 打开安卓工作室。构建 -> 生成签名的 APK...。现在点击“生成签名的 APK”。

      第 2 步

      点击新建。

      第 3 步

      填写详细信息,然后单击确定。

      jks key details,它会回到上一个窗口。

      单击下一步,并输入您存储在密钥中的密码。

      第 4 步

      现在点击完成并等待完成构建过程。

      现在 apk 生成成功。点击在资源管理器中显示。

      如果您需要更多详细信息,请访问并查看现场演示http://javaant.com/how-to-make-apk-file-in-android-studio/#.VwzedZN96Hs

      【讨论】:

      • 问题要求未签名的 apk
      • 不确定您是否理解这个问题。问题是未签名的 apk 未签名。
      【解决方案11】:

      您可以点击工具栏上运行按钮附近的下拉菜单,

      1. 选择“编辑配置”
      2. 点击“+”
      3. 选择“Gradle”
      4. 选择您的模块作为 Gradle 项目
      5. 在任务中:输入 assemble

      现在按确定,

      您现在需要做的就是从下拉列表中选择您的配置,然后按运行按钮。这需要一些时间。您未签名的 apk 现在位于

      Project\app\build\outputs\apk
      

      【讨论】:

        【解决方案12】:

        只需转到 BUILD->构建 APK 即可完成

        【讨论】:

        • +1。一个非常简单的方法。顺便说一句,您可以在 AndroidStudioProjects/<APP NAME>/app/build/outputs/apk/debug/app-debug.apk 找到生成的 APK
        • 就这么简单,非常感谢,成功了,感激不尽。
        【解决方案13】:

        在 OSX 上使用 Android Studio 2.2.3 我只使用了顶部菜单:

        Build > Build APK
        

        它使用 .apk 文件打开了 Finder。这不会生成签名的 APK。如果需要,您可以从同一菜单中选择Generate Signed APK

        【讨论】:

        • 我尝试生成签名的 APK,但它要求提供密钥存储路径。那里应该提供什么?
        【解决方案14】:
        Build -> Build APK     //unsigned app
        
        
        Build -> Generate Signed APK  //Signed app
        

        【讨论】:

          【解决方案15】:

          在 Android Studio 中:

          1. 构建

          2. 构建 APK

          3. 等待并转到弹出窗口中显示的位置。在右下角

          【讨论】:

            【解决方案16】:

            创建未签名 APK 的步骤

            Steps for creating unsigned APK
            
            •	Click the dropdown menu in the toolbar at the top
            •	Select "Edit Configurations"
            •	Click the "+"
            •	Select "Gradle"
            •	Choose your module as a Gradle project
            •	In Tasks: enter assemble
            •	Press Run
            •	Your unsigned APK is now located in - ProjectName\app\build\outputs\apk
            
            Note : Technically, what you want is an APK signed with a debug key. An APK that is actually unsigned will be refused by the device. So, Unsigned APK will give error if you install in device.

            注意:从技术上讲,您需要的是使用调试密钥签名的 APK。实际未签名的 APK 将被设备拒绝。因此,如果您在设备中安装,未签名的 APK 会报错。

            【讨论】:

            • 我收到他的错误“无法将进程工作目录设置为 'C:\Users\marad\.gradle\daemon\5.2.1\My Application”:无法设置当前目录 (errno 2) '
            【解决方案17】:

            对于未签名的 APK: 只需将 signingConfig 设置为 null。它会给你 appName-debug-unsigned.apk

            debug {
                 signingConfig null
            }
            

            然后从构建菜单构建。享受

            对于已签名的 APK:

            signingConfigs {
                    def keyProps = new Properties()
                    keyProps.load(rootProject.file('keystore.properties').newDataInputStream())
                    internal {
                        storeFile file(keyProps.getProperty('CERTIFICATE_PATH'))
                        storePassword keyProps.getProperty('STORE_PASSWORD')
                        keyAlias keyProps.getProperty('KEY_ALIAS')
                        keyPassword keyProps.getProperty('KEY_PASSWORD')
                    }
                }
                buildTypes {
                    debug {
                        signingConfig signingConfigs.internal
                        minifyEnabled false
                    }
                    release {
                        signingConfig signingConfigs.internal
                        minifyEnabled false
                        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                    }
                }
            

            keystore.properties 文件

            CERTIFICATE_PATH=./../keystore.jks
            STORE_PASSWORD=password
            KEY_PASSWORD=password
            KEY_ALIAS=key0
            

            【讨论】:

              【解决方案18】:

              AndroidStudio 3.4


              Grade Build Running完成后,你会在右下角看到通知。

              点击locate,你会看到你的可调试APK

              【讨论】:

                猜你喜欢
                • 2015-05-10
                • 2014-05-13
                • 2019-03-18
                • 2017-05-10
                • 2013-07-02
                • 1970-01-01
                • 2016-04-05
                • 2015-08-15
                • 1970-01-01
                相关资源
                最近更新 更多