Android 集成 Google Analytics 填坑

来源:互联网 发布:随心所欲说英语软件 编辑:程序博客网 时间:2024/06/05 16:40

Google AnalyticsGoogle 推出的应用数据统计实施方案,功能可以说是应有尽有。而且对于 Android 开发来说,使用 Google 自家的统计分析,是不是也非常的名正言顺。

image.png

但是,对于中国用户来说,我们没发正常使用 Google Service 的,这个是否会影响我们对 Google Analytics 的集成呢?似乎 Google 也考虑到来天朝这个尴尬的问题,所以在集成的文档中有着额外的说明:

注意:Google Analytics(分析)可在不带 Google Play 服务的设备上使用并正常工作。在这种情况下,您仍需下载并使用 Google Play 服务 SDK,而 Google Analytics(分析)将会自动回退为使用本地调度。 了解如何更新项目的清单文件,以便在非 Google Play 设备上启用后台调度。

对了,有个事儿忘记说了,官方集成文档支持中文了,所以按着文档一步一步来就好了,so,接下来开始讲解集成过程中可能出现的坑。

依赖的版本问题

根据文档,在项目的 build.gradle 中添加依赖:
classpath 'com.google.gms:google-services:3.0.0' ,然后在对应的model的build.gradle 顶部中添加 apply plugin: 'com.google.gms.google-services',然后添加具体依赖:

compile 'com.google.android.gms:play-services-analytics:9.2.0'。是不是很简单很简单的?我一开始也是这样认为的,一刷新同步 gradle 立马就会提示你:

Error:Execution failed for task ‘:app:process_testReleaseGoogleServices’.
Please fix the version conflict either by updating the version of the google-services plugin (information about the latest version is available at https://bintray.com/android/android-tools/com.google.gms.google-services/) or updating the version of com.google.android.gms to 9.0.0.

惊喜不惊喜,意外不意外,居然告诉我版本冲突了,那就协调版本呗,最后你就会把 9.2.0 降到 9.0.0 ,然后编译没问题了。

应用崩溃

但是你还没有开始得意的时候就会发现,应用启动会有一些错误信息:Firebase API initialization failure.接着应用可能会闪退,没有任何征兆的崩掉:

Method 'void android.support.v4.c.d.<init>()' is inaccessible to class 'com.google.firebase.iid.zzg' 感觉被 Google 亲爹给活生生的坑了一把,所以,这个版本一定要升上去的,不然这个奔溃是没法解决的。

这里再说说搜索的先后问题,因为出现了奔溃的问题,我一心思就在搜索这个奔溃异常相关,但是出来的结果全是 Firebase 相关的,可是这个不是我直接想要的问题啊,但是这里可以确定 GAFirebase 是有一些瓜葛的,后面我都去研究 FirebaseAnalytic 集成了,就在这个时候,我发现了一个有趣的问题:

image.png

官方Demo里面居然是把这个 plugin 写在最下面的,我也跟着试了下咯,结果还真的解决了,导致版本无法升级的原因就是在Model 里面加入的 apply plugin: 'com.google.gms.google-services'的位置,这个不能放在上面,而是要放在最下面。就是这个问题,挪了位置就会一片晴天。这一点在官方文档上面并没有明确说明。可能好多童鞋可能和我一样都习惯的加在最上面,肯定会被坑得不要不要的。
最后我再尝试去搜了下刚刚版本冲突的关键字,结果答案一下就出来了:https://stackoverflow.com/questions/38127053/google-play-services-gcm-9-2-0-asks-to-update-back-to-9-0-0

至于怎么添加屏幕事件,统计什么的,看官方文档就好了,都是支持中文的了,没有什么难度。简单总结下,其实上面的两个问题就是版本的问题,将版本升级到最新,就没有任何问题了,而在升级过程中提示版本冲突,而最终解决版本冲突的问题就是将apply plugin: 'com.google.gms.google-services'放到最后面。

配置文件

image.png

这里输入你的应用名称,包名之后,就可以下载配置文件了。下载了 google-services.json 按要求放好,这里的 R.xml.global_tracker 就会自动生成的。

synchronized public Tracker getDefaultTracker() {    // To enable debug logging use: adb shell setprop log.tag.GAv4 DEBUG    if (mTracker == null) {        mTracker = sAnalytics.newTracker(R.xml.global_tracker);        mTracker.enableExceptionReporting(true);        mTracker.enableAutoActivityTracking(false);    }    return mTracker;}

如果没有自动生成呢?可能就是你的文件有问题咯,最后实在不行,它还有一个方法直接传入你的追踪ID:

 mTracker = sAnalytics.newTracker("UA-123456789-0");

参考文档

  • 1、https://developers.google.com/analytics
  • 2、https://github.com/firebase/quickstart-android/blob/master/analytics/app/build.gradle
  • 3、https://stackoverflow.com/questions/38127053/google-play-services-gcm-9-2-0-asks-to-update-back-to-9-0-0
原创粉丝点击