说明:我不太了解AIQUA是做什么的,因为某些原因接触到它,所以我这里就只讲如何集成、初始化、"跟踪用户的设备ID"以及我躺过的坑,具体怎么使用就不说了,我这里是新建一个项目进行的,所以没有出现什么包冲突之类的问题。
为什么要写这篇呢?主要是因为,在我前面开始根据官方文档来操作时,遇到问题、最后发现需要。(可能是我的迷之操作导致这些问题的出现)整篇文章中,有哪里描述不对的地方,请指正出来,不能被我带偏了。
写的步骤:先根据文档来,遇到的问题也贴一下,最后再讲以arr集成。
还未解决的疑惑:如何注册、登录进去??知道的小伙伴麻烦告诉我一下。
一.在app的gradle下加入相关依赖(还有冲突版本的添加依赖方式,看官网文档即可):
注:AIQUA SDK版本的5.10.0,那么appcompat-v7最低版本的26.1.0
implementation 'com.android.support:appcompat-v7:26.1.0'
// add other necessary dependency
//***Firebase and Google Play Services***
implementation 'com.google.firebase:firebase-core:16.0.7'
implementation 'com.google.firebase:firebase-messaging:17.3.4'
implementation 'com.google.android.gms:play-services-analytics:16.0.7'
// AIQUA SDK
implementation 'com.quantumgraph.sdk:QG:5.10.0'
二.在AndroidManifest.xml下添加权限(根据你的需要):
注:Android6.0及以上需要动态获取权限
三.初始化两种方法选一,官网在activity的onCreate方法里(我写在MyApplication的onCreate方法(继承Application的类)):
注:写在MyApplication,记得在AndroidManifest.xml里面加 android:name=".MyApplication"。
初始化方法前面的备注,是以arr接入方式,总结日志知道的(arr接入方式,在后面),不对的地方请指出。
虽然日志显示:Not Initialized,但后面是初始化了的,具体是为什么呢?看日志
/**
* 默认的初始化,senderId: 912856755471
* 卸载重装后userId会改变,且显示用户已经存在,期间论appId换成什么,userId不变
* Not Initialized
*/
QG.initializeSdk(MyApplication.this, getPackageName());
/**
* 初始化AIQUA,使用自己的appId,senderId , 需要到平台上面设置才有senderId
* 卸载重装后userId会改变,且显示用户已经存在,期间论appId换成什么,userId不变
* Not Initialized
*/
QG.initializeSdk(MyApplication.this, getPackageName(), "senderId");
四.运行就闪退,依次遇到的问题及解决方法:
问题1:java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.example.aiqua. Make sure to call FirebaseApp.initializeApp(Context) first.
解决:
在第三步之前,加入:
注:必须判断FirebaseApp初始化成功才能进行第三步,会发现问题2
FirebaseApp.initializeApp(this);
问题2:FirebaseApp.initializeApp(Context)一直初始化不成功
解决:
1.在app.gradle的最后最后最后,记得是最后加入:
apply plugin: 'com.google.gms.google-services'
2.在项目的gralde下面加入如下:
buildscript {
dependencies {
classpath 'com.google.gms:google-services:3.0.0'
}
}
allprojects {
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
}
Sync Now一下,会发现问题3
问题3:File google-services.json is missing. The Google Services Plugin cannot function without it.
解决:这个需要下载 google-services.json,具体步骤有其他优秀博文写好了,自行查阅。
(一)下载QG-5.10.0.aar及加入到项目中(看图剪头指引):
注:我用的是QG-5.10.0.arr,刚刚再去官网找下载arr地址时,更新到QG-6.0.0.aar了
(二)(三)跟前面的二三步骤一样的,不重复
(四)获取QG实例:
QG qg = QG.getInstance(getApplicationContext());
注:一开始看QG类时,只关注device,一直找不到,今天从头到尾认真仔细看类的全部方法才找到"跟踪用户的设备ID"
(五)跟踪用户的设备ID(前提是前面四个步骤已经依次完成)
注:权限必需加
注:"跟踪用户的设备ID"及验证是否成功
//deviceID是手机设备ID,自行找方法实现获取device
qg.enableGATrackingWithGAID(deviceId);
//验证"跟踪用户的设备ID"方法是否成功,用TrackerId方法得到的值跟device对比,是一样的
qg.getTrackerId()