高版本Andriod 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) 进入网址,点击右上角管理中心

https://developer.huawei.com/consumer/cn/

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) 配置步骤总结

  1. 注册并实名华为开发者联盟账号
  2. 新建Android项目,项目名和包名后续会用
  3. 新建并配置签名文件
  4. 使用华为开发者联盟新建项目、使用Android项目和包名绑定应用,开启各项服务
  5. 按照华为开发者联盟步骤集成基础SDK、添加插件
  6. 使用签名文件生成SHA256证书指纹并绑定到华为开发者联盟项目中
  7. Android项目集成HMS环境,如添加依赖、配置混淆
  8. 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


d) 问题总结

  1. signingConfigs写在了buildTypes下方
    在这里插入图片描述
  1. 依赖包路径hms后面的 : 打成了 .
  1. 混淆配置中Annotation两边的 * 打成了 ’
    圈中的 . 后面两个 * 只打了一个
  1. 在运行在中出现以下或类似报错
    将在模块级的build.gradle文件下,默认配置中的minSdk和targetSdk版本改为如图所示
    在这里插入图片描述

Guess you like

Origin blog.csdn.net/qq_44973776/article/details/121757918