高版本Andriod Studio集成HMS环境看这篇就够了(附加步骤多图、资源下载、源代码、问题总结)_android studio 版本几可以装hms-程序员宅基地

技术标签: java  android  harmonyos  

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

项目源文件
https://www.aliyundrive.com/s/UDRwZjNJY8U


d) 问题总结

  1. signingConfigs写在了buildTypes下方
    在这里插入图片描述
  1. 依赖包路径hms后面的 : 打成了 .
  1. 混淆配置中Annotation两边的 * 打成了 ’
    圈中的 . 后面两个 * 只打了一个
  1. 在运行在中出现以下或类似报错
    将在模块级的build.gradle文件下,默认配置中的minSdk和targetSdk版本改为如图所示
    在这里插入图片描述
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44973776/article/details/121757918

智能推荐

java stream 常用方法_.stream(). sorted((a,b)->-程序员宅基地

文章浏览阅读137次。@Test public void demo8() { List<String> list = new ArrayList<String>(); list.add("a"); list.add("b"); list.add("c"); list.add("d"); list.add("a"); List<String> collect = list.st..._.stream(). sorted((a,b)->

Windows Server2008、2012安装RAC报 [INS-20802]网格基础结构配置失败_win2008安装oracle 12 ora-20802-程序员宅基地

文章浏览阅读1w次。之前有客户要求,在windows server2012上要求安装Oracle 11gR2 RAC,所以在自己的虚拟机上进行了测试。win 2012没有安装成功,使用2008报同样的错,如图查看集群状态,节点1完全OK,但是alert日志中:2014-12-26 16:54:23.967: [cssd(3748)]CRS-1601:CSSD 重新配置完毕。活动节点为 windb1 _win2008安装oracle 12 ora-20802

20 ubuntu 中科大源_Ubuntu安装docker ce、docker-compose、配置镜像加速-程序员宅基地

文章浏览阅读837次。Ubuntu安装docker ce、docker-compose、docker-machine、配置镜像加速 | 江湖博客​www.limuke.top1、Ubuntu安装Docker-CE【1】卸载旧版本旧版本的 Docker 称为 docker 或者 docker-engine,使用以下命令卸载旧版本:sudo apt-get remove docker docker-engine docke..._docker-compose 中国电子科技大学源

python-opencv高级形态学处理—边缘—凸包_python opencv mask凸包计算-程序员宅基地

文章浏览阅读1.3k次。图像的形态学处理有很多种,其中凸包处理是一种比较常见的高级方法,其主要原理是:生成一个凸多边形,这个凸多边形将图片中所有的白色像素点都包含在内的运算。Python中有相应的实现方法。形态学处理,除了最基本的膨胀、腐蚀、开/闭运算、黑/白帽处理外,还有一些更高级的运用,如凸包,连通区域标记,删除小块区域等。形态学目的如下:图像预处理(去噪声,简化形状)增强物体结构(抽取骨骼,细化,粗化,凸包,物体标记)从背景中分隔物体物体量化描述(面积,周长,投影,Euler-Poincare特征)_python opencv mask凸包计算

计算机二叉树节点计算公式,二叉树节点数该怎么计算?有几种算法?-程序员宅基地

文章浏览阅读1.6w次,点赞7次,收藏13次。每一棵二叉树中都有左右两棵子树,子树中又有无数节点,那你们知道子树中的节点该怎么计算吗?快来跟小编了解一下吧。二叉树算法概念对于任何一棵二叉树来说,其叶子结点的数目为n0,且其度数为2的结点数n2,则n0=n2+1.证明:对于此二叉树:设其度数为1的结点数为n1. 从下往上看,每个结点都会有一个边朝上,除了根结点,则边总数为:N=n0+n1+n2-1 ①从上往下看,度数为2的结点有两个边,度数为1..._二叉树节点数计算

deepstream-test5-程序员宅基地

文章浏览阅读908次。英文说明1、可以与服务器联通,接发消息2、物联网 协议 supported by nvmsgbroker plugin is listed in the DeepStream Plugin guide_deepstream-test5

随便推点

mybatis详解 oracle,Mybatis调用Oracle存储过程方法讲解-程序员宅基地

文章浏览阅读614次。这篇文章主要介绍了Mybatis调用Oracle存储过程的方法介绍,需要的朋友可以参考下1:调用无参数的存储过程。创建存储过程:Mapper.xml 配置:经测试其他标签(update、insert、select)也可以。Mapper.javaMapperTest.java 测试2:有参数的存储过程调用:2.1存储过程的创建:2.2Mapper.xml 的配置:2.3Mapper.java2.4M..._mybtis oracle

tez问题_failed to rename hdfslocatedfilestatus-程序员宅基地

文章浏览阅读380次。1.TEZ在hdfs上的jar包修复su -l hadoop -c ‘hadoop dfs -rm -r /apps/tez-*’su -l hadoop -c ‘hadoop fs -copyFromLocal /opt/apps/ecm/service/tez/0.9.2-1.2.1/package/tez-0.9.2-1.2.1 /apps’su -l hadoop -c ‘hadoop fs -copyFromLocal /opt/apps/extra-jars/smartdata-*.jar_failed to rename hdfslocatedfilestatus

idea运行tomcat启动报错xxx war exploded: Artifact is being deployed,_artifact untitled:war exploded: artifact is being -程序员宅基地

文章浏览阅读6.5w次,点赞13次,收藏21次。在网上找了半天也没找到问题解决方法,之后进到project structure这个页面发现problem那有显示错误,我这是解决完了的截图,如果你的problem后面有数字点进去,右侧页面出现问题在最后有一个[Fix]按钮,你点击一下把你丢失的文件add,之后在运行就好了_artifact untitled:war exploded: artifact is being deployed, please wait..

常用的SAI 时钟频率(SAI Frequency)_sai clock-程序员宅基地

文章浏览阅读861次。Clock In SAIfs Sample Rate.8k Hz - Telephone11.025k Hz22.05k Hz - Radio Broadcast32k Hz - miniDV, DAT (LP mode)44.1k Hz - CD, MPEG-1 Audio(VCD, SVCD, MP3)47.25k Hz - Commercial PCM Recorde_sai clock

PHP cookie的使用_$keys = $_cookie['key'];-程序员宅基地

文章浏览阅读536次。获取获取浏览器在请求时携带的cookie数据,使用超全局数组变量, $_COOKIE完成对cookie的获取。 其中每个 $_COOKIE 中的元素,对应一个cookie变量,元素的键就是cookie的key,元素的值就是cookie的value。时间设置通过cookie的第三个参数可以设置,有效期采用一个时间戳进行表示。 浏览器在向服务器发送请求时,会检测到cookie是否有效,只有没有过有_$keys = $_cookie['key'];

GlusterFS 分布式文件系统的卷类型及配置_gluster卷-程序员宅基地

文章浏览阅读381次。GlusterFS 分布式文件系统的卷类型及配置GlusterFS概述GlusterFS简介GlusterFS特点GlusterFS术语.模块化堆栈式架构GlusterFS工作原理GlusterFS工作流程:弹性HASH算法GlusterFS的卷类型分布式卷分布式卷的特点创建分布式卷条带卷特点创建条带卷复制卷(类似Raid1)特点创建复制卷分布式条带卷创建分布式条带卷分布式复制卷创建分布式复制卷项目环境:GlusterFS概述GlusterFS简介开源的分布式文件系统由存储服务器、客户端以及NFS/_gluster卷

推荐文章

热门文章

相关标签