生成 APK 文件

•步骤

  点击  Build -> Generate Signed...... ;

  来到如下界面;

  

  选择 APK 选项,点击 Next 来到如下界面;

  

  如果你电脑上没有一个正式的 keystore 文件,点击 Create new 按钮,弹出如下对话框;

  

  • Key store path : 选择 Key store 的存储路径,我放到了 D:\AndroidStudio\APK\ 目录下,并命名为 key-store.jks

  • Password : 自己定义密码,最好和下面的 Password 设置成相同的密码,容易记住

  • Alias : 为 Key store 取一个别名

  都填好后,点击 OK 按钮即可;

  此时,他可能会报错;

  

  别急,莫慌,点击 OK 后来到如下界面;

  

  如果你希望以后都不用再输 Keystore 密码,就把 Remember passwords 勾选上;

  然后点击 Next 按钮,跳转到如下界面;

  

  • Destination Folder : 设置打包后的 APK 放置路径

  • debug : 测试版

  • release : 发行版

  • V1 or V2 签名选择 : 见这篇博客

  点击 Finish 按钮完成打包,然后,到你填写的 APK 放置路径找到打包好的 APK,发送到手机上安装即可;

  或者根据右下角的提示,点击 locate 找到相应的路径;

  

打包过程中遇到的 bug

•bug1

  

•bug1 解决方案

  打开 cmd ,输入如下指令:

     keytool -genkey -alias testalias -keypass 123456 -keyalg RSA -keysize 2048 -validity 36500 -keystore D:\AndroidStudio\APK\test.keystore -storepass 123456

  • testalias : 设置的 alias 值

  • 123456 :设置的 password

  • D:\AndroidStudio\APK\test.keystore:设置的 keystore 路径(自行设置)

  按下回车,出现如下界面;

  

  上述步骤都完成后,你会在你设置的 keystore 路径 (D:\AndroidStudio\APK)下找到 test.keystore 文件;

  然后,重复上述安装步骤,来到如下界面时;

  

  选择 Choose existing 按钮,并找到 D:\AndroidStudio\APK 下的 test.keystore 文件;

  其余步骤就和上面的剩下的安装步骤一样了;

•bug2

  

•bug2 解决方案

  打开 app 下的 build.gradle,在  android{} 中添加如下代码;

lintOptions{
  checkReleaseBuilds false
  abortOnError false
}

  另一种修改方式:参考博客

•bug3

   error: failed to read PNG signature: file does not start with PNG signature

  错误原因:复制图片到 Android Studio 时,手动将 .jpg 后缀的图片改成了 .png 格式;

  你需要专业的工具将 .jpg 图片转换成 .png 图片,转换好后在添加到 Android Studio 中;

•bug3 解决方案

  • 【方案一】:【在线图片转PNG格式

    • 登录此网站,将图片在线转成 png 即可
  • 【方案二】:格式工厂

    • 如果你有网盘会员,点击这里下载【,提取码:1234】
    • 也可以使用这个网页极速下载,安装时要注意捆绑软件

•bug4

   Password verification failed

•bug4 解决方案

  将主项目的 build 文件夹(app/build)整个删除,再打包重新输入密码后成功。

Android Studio 之生成正式签名的 APK 文件的更多相关文章

  1. 如何用Android studio生成正式签名的APK文件

    必须签名之后才可以发布到app商店中. 平时的调试的app都有默认的签名. 下面是生成带签名的APK的步骤: 1. Build 选择 Generate Signed APK 2. 弹出框,第一次选择C ...

  2. Android Studio 打包生成正式apk(XXX-release.apk)的两种方式

    { 方式一:使用Android Studio生成1.点击Build->Generate Signed apk,首次点击可能会提示输入操作系统密码2.弹出如下对话框,还没有生成过keystore ...

  3. Android Studio非gradleproject编译后的apk文件在哪?

    非gradle的apk文件位置和gradle有一些差别,怎样找到apk文件在哪?我直接上图吧,选中project,右键: 在windows是选择"show in exlporer" ...

  4. android studio 怎么将项目打包成apk文件

    1.Build -> Generate Signed APK...,打开如下窗口 2.假设这里没有打过apk包,点击Create new,窗口如下 这里只要输入几个必要项 Key store p ...

  5. Android Studio单独生成apk

    /********************************************************************* * Android Studio单独生成apk * 说明: ...

  6. [转]使用ant让Android自动打包的build.xml,自动生成签名的apk文件(支持android4.0以上的版本)

    在android4.0以后的sdk里那个脚本就失效了,主要是因为 apkbuilder这个程序不见了: 人家sdk升级,我们的脚本也要跟上趟,修改一下喽. 上网一查,大家的文章还停留在我去年的脚本程度 ...

  7. Android 开发基础入门篇: 生成带有签名的apk安装包

    说明: 软件默认生成的安装包没有签名,现在手机安装APP的时候要求,安装包必须有签名才可以 默认生成的APK位置 现在生成带有签名的APK 我一般放到当前工程根目录,然后文件名字 key 有些时候需要 ...

  8. Android Studio 3.0正式版填坑之路

    原文:https://www.jianshu.com/p/9b25087a5d7d   Android Studio 3.0启动图 序言 总看别人的文章,今天尝试着自己来写一篇.在逛论坛时候,无意间发 ...

  9. Android Studio 3.6 正式版终于发布了

    Google 下载地址 百度云 下载地址 密码:epl9 如题,Android Studio 3.6 正式版终于发布了,值得兴奋呀,毕竟 3.5 大版本更新也已经差不多半年了,撒花撒花!这次更新又更新 ...

随机推荐

  1. Gradle & Java

    Gradle & Java Gradle Build Tool I Modern Open Source Build Automation https://gradle.org/ https: ...

  2. web development all in one

    web development all in one https://javascript.xgqfrms.xyz/web-development-all-in-one.html refs https ...

  3. js types & primitive & object

    js types & primitive & object js 数据类型 typeof null // "object" typeof undefined // ...

  4. js 脏检测

    参考 基础知识 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  5. 实现TensorRT-7.0插件自由!(如果不踩坑使用TensorRT插件功能)

    本系列为新TensorRT的第一篇,为什么叫新,因为之前已经写了两篇关于TensorRT的文章,是关于TensorRT-5.0版本的.好久没写关于TensorRT的文章了,所幸就以新来开头吧~ 接下来 ...

  6. 在 TKE 中使用 Velero 迁移复制集群资源

    概述 Velero(以前称为Heptio Ark)是一个开源工具,可以安全地备份和还原,执行灾难恢复以及迁移 Kubernetes 群集资源和持久卷,可以在 TKE 集群或自建 Kubernetes ...

  7. 微信小程序(二十)-UI组件(Vant Weapp)-02使用

    1.按钮使用 https://vant-contrib.gitee.io/vant-weapp/#/button 1.全局引入,在app.json中引入组件 "usingComponents ...

  8. DRF的封装:APIView类及五大模块

    目录 一.drf框架的封装特点 1.APIView类 二.drf的基础组件 1.请求模块 1.1 请求模块做了什么 1.2 请求request参数 2.解析模块 3.响应模块 4.渲染模块(了解) 5 ...

  9. 树的遍历c/c++

    先序遍历(递归) 1 void preOrderTraverase(TreeNode * r) 2 { 3 if(r) 4 { 5 printf("%d\t",r->_dat ...

  10. void指针及指针的多次赋值的理解

    1.void指针的类型转换 int A::functionCommamd(const DWORD _from,const DWORD _to,const DWORD Event_type,void * ...