Aandriod Studio集成HMS环境
本文资源已不再维护,仅供参考,最新开发指南请看华为开发者联盟官方文档
0.前言
博主基于华为开发者学堂1+X初级开发课程
由于博主版本与教程中所用不一致
因此遇到许多配置语法上的不一致问题
其他与博主开发环境有区别的朋友们,仅供参考
1.开发环境介绍
a) Java版本
java 1.8
b) Android Studio版本
Android Studio 2020.3.1 Patch3
c) Gradle/SDK版本
Gradle: Gradle 7.0.2
SDK: Android 4.0
2.注册认证华为开发者联盟(个人开发者)
a) 进入网址,点击右上角管理中心
b) 注册/登录账号
使用手机号或其他形式注册并登陆账号(需接收验证码)
c) 实名认证开发者
认证个人开发者,是否上架敏感应用,选否
> 使用身份证、银行卡、手机号等进行实名认证,提交完成
3.新建Android Studio项目
a) 选择Phone and Table->Empty Activity
b) 项目基本配置
如下,项目名、包名、保存路径皆可自定,语言选Java,最小SDK选4.1
4.创建并配置签名文件
a) 创建签名文件
创建好项目后,点上方菜单栏Build->Generate Signed Bunlde/APK
新建jks文件
特别注意加重的四个地方:将jks文件放到项目文件的app目录下,设置KeyStore密码为’123456’,设置Key别名,Key密码设为’123456’,下面信息自填,完成后OK->Next
点击Finish
b) 配置签名文件
右侧Module级别的build.gradle文件,android闭包下添加这段签名配置(注意配置在buildTypes上方)
storeFile file()中填写刚刚创建的jks文件
keyAlias 对应key别名
keyPassword 对应key密码
storePassword 对应keyStore密码
在相同位置下方的buildTypes中添加以下代码
1.release中加入signingConfig signingConfigs.release
2.release下方添加debug闭包,加入如图两句代码
5.开发者联盟中新建项目、绑定应用
a) 创建项目
登录华为开发者联盟,进入右上角管理中心
进入我的项目
b) 绑定应用
创建应用
选择平台android,设备手机,绑定android项目名和包名-如:com.example.myapplication
c) 添加配置文件
下载项目生成的.json文件,将其按步骤放在项目中
d) 添加SDK(Gradle 7.0.2,版本不同,配置方法可能不同)
在项目级build.gradle文件下加入以下maven配置信息和依赖
在settings.gradle文件下配置如下一条maven,对应上面项目级build.gradle文件的maven
在模块级的build.gradle文件下,添加以下一条依赖包,对应build.gradle文件下的依赖
在模块级的build.gradle文件最上方plugins闭包中添加以下一条插件
6.生成、配置签名证书指纹
a) 使用cmd命令生成签名证书指纹
注意事项:
1.keytool命令为java内置命令,需提前设置JAVA_HOME环境变量
2.-keystore 后面的路径对应项目路径\app\签名文件.jks
b) 配置签名证书指纹
找到SHA256,配置到应用中的SHA256证书
c) 开通账号服务
在上方导航栏->API管理中将服务全部开启
7.集成Account SDK
a) 添加依赖
在模块级的build.gradle文件下,添加以下一条依赖包
b) 添加混淆配置
在proguard_rules.pro文件中添加如图代码,避免HMS Core SDK被混淆
c) 添加权限
在AndroidManifest.xml文件中添加网络和WIFI权限,如下
d) 添加元数据
在AndroidManifest.xml文件中添加如下元数据,当用户手机上未安装HMS Core ( APK)或者版本过低时,可引导用户安装或升级HMS Core ( APK )
e) 同步项目
最后,全部步骤完成后,点击编译器右上角,大象样子的按键,同步项目,无报错就配置完成了
8.总结
a) 配置步骤总结
- 注册并实名华为开发者联盟账号
- 新建Android项目,项目名和包名后续会用
- 新建并配置签名文件
- 使用华为开发者联盟新建项目、使用Android项目和包名绑定应用,开启各项服务
- 按照华为开发者联盟步骤集成基础SDK、添加插件
- 使用签名文件生成SHA256证书指纹并绑定到华为开发者联盟项目中
- Android项目集成HMS环境,如添加依赖、配置混淆
- Android项目添加权限、添加元数据
b) 代码汇总(本文中所出现的代码,以下都是部分代码,不可直接运行)
Ⅰ.配置签名文件
signingConfigs{
release{
storeFile file('HMSAccountApp.jks')
keyAlias 'HMSAccountApp'
keyPassword '123456'
storePassword '123456'
v1SigningEnabled true
v2SigningEnabled true
}
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
debug {
signingConfig signingConfigs.release
debuggable true
}
}
Ⅱ.生成签名证书
keytool -list -v -keystore 'jks文件路径'
Ⅲ.集成SDK
// 项目级
maven { url 'https://developer.huawei.com/repo/' }
classpath 'com.huawei.agconnect:agcp:1.5.2.300'
// 模块级
id 'com.huawei.agconnect'
implementation 'com.huawei.hms:hwid:5.1.0.301'
implementation 'com.huawei.agconnect:agconnect-core:1.5.2.300'
// 混淆
-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile, LineNumberTable
-keep class com.huawei.hianalytics.**{*;}
-keep class com.huawei.updatesdk.**{*;}
-keep class com.huawei.hms.**{*;}
Ⅳ.权限和元数据
// 权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
// 元数据
<meta-data
android:name="com.huawei.hms.client.channel.androidMarket"
android:value="false"/>
c) 资源下载(阿里云盘)
Java 1.8.0_271:
https://www.aliyundrive.com/s/usj3zxdxhwa
Android Studio 2020.3.1 Patch3:
https://www.aliyundrive.com/s/EaDqU6wvUSh
项目源文件
https://www.aliyundrive.com/s/UDRwZjNJY8U
d) 问题总结
- signingConfigs写在了buildTypes下方
- 依赖包路径hms后面的 : 打成了 .
- 混淆配置中Annotation两边的 * 打成了 ’
圈中的 . 后面两个 * 只打了一个
- 在运行在中出现以下或类似报错
将在模块级的build.gradle文件下,默认配置中的minSdk和targetSdk版本改为如图所示