Android studio apk直接发送到手机无法使用的问题及扩展/apk签名/SHA1的获取
2017-09-08 15:56
363 查看
背景:
1、因为开发的APP是内部使用,公司不将其发布到各大应用市场;
2、前两天同事需将开发的APP拿去外面给客户做演示。所以将工具(eclipse)编译好的apk直接发给同事。
3、出差的同事已经到了省外。。。
4、发现APP存在的一个Bug,及时修复,通过QQ发给同事。
=============================================================
背景交代完毕,开始主题;
将项目从eclipse导入到Android studio ,通过AS编译后,在outputs文件夹中生成了一个app-debug.apk的apk。看名字就觉得有点儿怪异,于是不放心,自己先安装一下这个apk。果然~~安装不上该apk。错误如下:
提示是一个无效的安装包。
于是想到,eclipse有默认的帮每个apk都做一个默认的签名,所以安装到手机是没有问题的,那么AS是否也有呢?不用怀疑那么多,直接给apk签个名,不就好了。
签名步骤:
根据自己情况选择create new… 或者choose existing…
next,设置好keystore的各个配置信息(密钥文件的路径、密钥文件的密码、别名、密码、年限及开发者的信息)。
点击ok完成密钥的配置。
之后就是next—>finish的步骤了。在签名完成后,会生成一个发布版本的apk,在app目录下多了个release的文件夹,里面的app-release.apk就是我们签名后的,可以发给其他人安装的apk。
原本到这里就该结束了,但是在app里面集成了百度地图,所以又有了一个新的问题。
集成百度地图sdk,需要通过SHA1 + 包名的方式生成我们app中需要的appkey。
在eclipse中很容易就找到了
但是在Android studio 中,SHA1在哪里呢?
我也不知道啊(对Android studio 熟练度不够),百度吧。。在网上看了很多朋友写的博客,在这里我也自己整理下,以便自己查找方便。
和eclipse一样,他们都有两种SHA1。一种Debug版本的,一种release版本的。
获取也有两种方式。
通过控制台输入命令:
一、Debug版本的
进入 C盘—>用户名—>.android的文件夹。
输入命令 keytool -list -v -keystore debug.keystore 其中debug.keystore是studio默认的keystore,按回车,然后输入秘钥:android(系统默认的,不用输入),回车(秘钥库口令是看不到的)
二、release版本的
通过命令keytool -list -v -keystore (keystore所在文件目录)F:\xxxx\keystore\key.jks -storepass youpsd
这样就获取到我们所要的SHA1了,将它配置到百度地图中,生成自己的appkey吧。
在项目中重新编译,运行。百度地图使用正常了。
知识点稍微乱了一点,可以分成两篇写的,但是太懒了,就合成一篇了,权当自己随笔记录了。
如果对你有帮助,万分荣幸。如果没有~~~抱歉,自个再百度去吧。
1、因为开发的APP是内部使用,公司不将其发布到各大应用市场;
2、前两天同事需将开发的APP拿去外面给客户做演示。所以将工具(eclipse)编译好的apk直接发给同事。
3、出差的同事已经到了省外。。。
4、发现APP存在的一个Bug,及时修复,通过QQ发给同事。
=============================================================
背景交代完毕,开始主题;
将项目从eclipse导入到Android studio ,通过AS编译后,在outputs文件夹中生成了一个app-debug.apk的apk。看名字就觉得有点儿怪异,于是不放心,自己先安装一下这个apk。果然~~安装不上该apk。错误如下:
提示是一个无效的安装包。
于是想到,eclipse有默认的帮每个apk都做一个默认的签名,所以安装到手机是没有问题的,那么AS是否也有呢?不用怀疑那么多,直接给apk签个名,不就好了。
签名步骤:
根据自己情况选择create new… 或者choose existing…
next,设置好keystore的各个配置信息(密钥文件的路径、密钥文件的密码、别名、密码、年限及开发者的信息)。
点击ok完成密钥的配置。
之后就是next—>finish的步骤了。在签名完成后,会生成一个发布版本的apk,在app目录下多了个release的文件夹,里面的app-release.apk就是我们签名后的,可以发给其他人安装的apk。
原本到这里就该结束了,但是在app里面集成了百度地图,所以又有了一个新的问题。
集成百度地图sdk,需要通过SHA1 + 包名的方式生成我们app中需要的appkey。
在eclipse中很容易就找到了
但是在Android studio 中,SHA1在哪里呢?
我也不知道啊(对Android studio 熟练度不够),百度吧。。在网上看了很多朋友写的博客,在这里我也自己整理下,以便自己查找方便。
和eclipse一样,他们都有两种SHA1。一种Debug版本的,一种release版本的。
获取也有两种方式。
通过控制台输入命令:
一、Debug版本的
进入 C盘—>用户名—>.android的文件夹。
输入命令 keytool -list -v -keystore debug.keystore 其中debug.keystore是studio默认的keystore,按回车,然后输入秘钥:android(系统默认的,不用输入),回车(秘钥库口令是看不到的)
二、release版本的
通过命令keytool -list -v -keystore (keystore所在文件目录)F:\xxxx\keystore\key.jks -storepass youpsd
这样就获取到我们所要的SHA1了,将它配置到百度地图中,生成自己的appkey吧。
在项目中重新编译,运行。百度地图使用正常了。
知识点稍微乱了一点,可以分成两篇写的,但是太懒了,就合成一篇了,权当自己随笔记录了。
如果对你有帮助,万分荣幸。如果没有~~~抱歉,自个再百度去吧。
相关文章推荐
- Android开发-工具:Android Studio 怎么添加使用第三方jar包及无法编译的问题解决方法
- Android手机无法使用google地图的问题的解决方案
- 解决使用 JDK 1.7 对 Android apk 签名后程序无法安装的问题
- 仅仅需一步教你解决Win10下Android Studio terminal无法使用的问题
- AndroidStudio自定义属性xmlns无法识别问题解决in Gradle projects,always use http://schemas.android.com/apk/res-aut
- 解决绕过android下apk使用usb设备权限查询相应问题,自动获取usb权限
- 关于部分Android手机安装apk,无法获取正常的logo
- 解决Eclipse升级ADT22以后以及Android Studio由于依赖库问题无法直接运行
- 解决绕过android下apk使用usb设备权限查询相应问题,自动获取usb权限
- 解决绕过android下apk使用usb设备权限查询相应问题,自动获取usb权限
- Android Process bar的自定义进度条 使用9 patch导致直接无法显示进度的问题
- Android手机JmDNS的使用以及解决某些品牌手机Multicast无法接收组播消息的问题
- SpringMVC 使用uploadify插件上传文件,post方法无法直接获取参数问题
- 红米手机在Android开发中无法获取data/data中数据的问题
- android studio Terminal windows 下无法使用的问题
- milestone等系列android手机无法adb下使用sqlite3问题
- Android--使用手机拍照获取图片路径,小米手机选择照片问题处理
- 只需一步教你解决Win10下Android Studio terminal无法使用的问题
- AndroidStudio自定义属性xmlns无法识别问题解决in Gradle projects,always use http://schemas.android.com/apk/res-auto
- 解决使用 JDK 1.7 对 Android apk 签名后程序无法安装的问题