Android studio apk直接发送到手机无法使用的问题及扩展/apk签名/SHA1的获取

来源:互联网 发布:nodejs 写入json文件 编辑:程序博客网 时间:2024/05/26 07:27

背景:
1、因为开发的APP是内部使用,公司不将其发布到各大应用市场;
2、前两天同事需将开发的APP拿去外面给客户做演示。所以将工具(eclipse)编译好的apk直接发给同事。
3、出差的同事已经到了省外。。。
4、发现APP存在的一个Bug,及时修复,通过QQ发给同事。

=============================================================

背景交代完毕,开始主题;
将项目从eclipse导入到Android studio ,通过AS编译后,在outputs文件夹中生成了一个app-debug.apk的apk。看名字就觉得有点儿怪异,于是不放心,自己先安装一下这个apk。果然~~安装不上该apk。错误如下:
安装失败的apk

提示是一个无效的安装包。
于是想到,eclipse有默认的帮每个apk都做一个默认的签名,所以安装到手机是没有问题的,那么AS是否也有呢?不用怀疑那么多,直接给apk签个名,不就好了。
签名步骤:
这里写图片描述

根据自己情况选择create new… 或者choose existing…

这里写图片描述

next,设置好keystore的各个配置信息(密钥文件的路径、密钥文件的密码、别名、密码、年限及开发者的信息)。
这里写图片描述

点击ok完成密钥的配置。
之后就是next—>finish的步骤了。在签名完成后,会生成一个发布版本的apk,在app目录下多了个release的文件夹,里面的app-release.apk就是我们签名后的,可以发给其他人安装的apk。

这里写图片描述

安装成功的apk

原本到这里就该结束了,但是在app里面集成了百度地图,所以又有了一个新的问题。
集成百度地图sdk,需要通过SHA1 + 包名的方式生成我们app中需要的appkey。

这里写图片描述

在eclipse中很容易就找到了

eclipse中SHA1所在位置

但是在Android studio 中,SHA1在哪里呢?
我也不知道啊(对Android studio 熟练度不够),百度吧。。在网上看了很多朋友写的博客,在这里我也自己整理下,以便自己查找方便。

和eclipse一样,他们都有两种SHA1。一种Debug版本的,一种release版本的。
获取也有两种方式。

通过控制台输入命令:
一、Debug版本的
进入 C盘—>用户名—>.android的文件夹。
输入命令 keytool -list -v -keystore debug.keystore 其中debug.keystore是studio默认的keystore,按回车,然后输入秘钥:android(系统默认的,不用输入),回车(秘钥库口令是看不到的)
debug版本的SHA1

二、release版本的
通过命令keytool -list -v -keystore (keystore所在文件目录)F:\xxxx\keystore\key.jks -storepass youpsd

release版本的SHA1
这样就获取到我们所要的SHA1了,将它配置到百度地图中,生成自己的appkey吧。
在项目中重新编译,运行。百度地图使用正常了。

知识点稍微乱了一点,可以分成两篇写的,但是太懒了,就合成一篇了,权当自己随笔记录了。
如果对你有帮助,万分荣幸。如果没有~~~抱歉,自个再百度去吧。

原创粉丝点击