【问题标题】:Android GoogleAnalytics getInstanceAndroid GoogleAnalytics 获取实例
【发布时间】:2016-12-14 18:04:19
【问题描述】:

在 Application 类中,在创建方法中我调用 GoogleAnalytics.getInstance(this) 并且应用程序只是冻结...在任何设备上 在 google play services 6.1 上运行良好,现在是 6.5,我不知道是什么原因造成的...... 有什么想法吗?

public class BaseApplication extends Application {

    private static Tracker mTracker;
    private MyProfile mMyProfile;

    public BaseApplication() {
        super();
    }

    private void initTracker() {
        if (mTracker == null) {
            GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
            mTracker = analytics.newTracker(R.xml.global_tracker);
            mTracker.enableAdvertisingIdCollection(true);
        }
    }

`...

Gradle 
dependencies {
    compile project(':IMFramework')
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'com.google.android.gms:play-services-base:6.5.87'
    compile 'com.google.android.gms:play-services-maps:6.5.87'
}

【问题讨论】:

  • 嗨,我也有同样的问题。你修好了吗?应用程序在执行此调用期间冻结:GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);我也在使用 com.google.android.gms:play-services:6.5.87(这是我第一次使用 Android Analytics SDK)。
  • 我没有解决方案......但我有可能是一个线索。我升级到 V4,只要我继续将数据发送到我们预先存在的目标,一切都很好。当我创建一个新的(并更改代码中的 ID)时,getInstance() 才挂起。
  • 你们在使用 Google Play Services 7.0 时是否还遇到同样的问题:plus.google.com/+AndroidDevelopers/posts/JRfRmePSWFK

标签: android google-analytics freeze


【解决方案1】:

在 google play services 6.1 上运行良好

很好,我确实回滚到 6.1。+ 我认为这是一些内部错误,将在下一次更新中修复。

更新

在 7.0 中已修复

【讨论】:

  • 我终于得到了 com.google.android.gms:play-services:6.5.87 工作。冻结是在使用 ga-global-settings.xml 时以某种方式引起的,所以现在我放弃了该 xml 并使用纯 java 代码配置全局设置()(日志记录,dryrun)。
  • @Paul 谢谢,但我更喜欢在谷歌修复它时继续使用 6.1
  • @Paul plz elobarate 是怎么做到的......我陷入了类似的境地
  • @Paul 谢谢!!!!过去几天我一直在绞尽脑汁想弄清楚为什么我的应用程序一直挂起。
  • 很遗憾。这不是 GPS 的新版本第一次给终端用户带来麻烦。在向公众发布新的 GPS 之前,Google 应该进行更好的 QA 测试
【解决方案2】:

从清单中删除这一行为我解决了这个问题:

元数据 android:name="com.google.android.gms.analytics.globalConfigResource" android:resource="@xml/global_tracker"

【讨论】:

  • 也帮助了我,但这条线实际上是做什么的?
  • 它告诉它从 xml 文件中获取数据。
  • 这解决了我的问题。
  • 以编程方式替换:GoogleAnalytics googleAnalytics = GoogleAnalytics.getInstance(mContext); googleAnalytics.setLocalDispatchPeriod(30); mGATracker = googleAnalytics.newTracker(mTrackerId); mGATracker.setSessionTimeout(300); mGATracker.enableExceptionReporting(true);
  • 有没有人清楚地解释 global_tracker.xml 的作用?那里的所有教程都只是剪切和粘贴了提供 3 个跟踪器(全局、应用程序和电子商务)的相同代码,但它们都没有真正解释发生了什么以及 xml 文件扮演什么角色......尤其是因为 xml 文件没有'似乎不是对称的(并且没有一个用于电子商务跟踪器)
【解决方案3】:

GoogleAnalytics.getInstance() 在尝试解析 xml 跟踪器定义时出现死锁。

该问题已在 2015 年 3 月 19 日发布的 Google Play 服务 7.0 中得到修复。升级到 7.0 将修复死锁。 http://developer.android.com/google/play-services/index.html

如果您必须使用 Play Services 6.5,您可以通过从代码而不是 xml 资源初始化跟踪器来解决死锁:

public static final String TRACKER_ID="UA-xxx";
...
mTracker = analytics.newTracker(TRACKER_ID);
// Configure mTracker using the tracker provided methods

【讨论】:

    【解决方案4】:

    我收到了这个错误:

    java.lang.NoSuchMethodError: No static method zzz(Ljava/lang/Object;)Ljava/lang/Object; in class Lcom/google/android/gms/common/internal/zzaa; or its super classes (declaration of 'com.google.android.gms.common.internal.zzaa' appears in /data/data/com.crave.iapdemo/files/instant-run/dex/slice-com.google.android.gms-play-services-basement-10.0.1_b9da1447b99cc6cbc2fa601fb84d0418780bfa55-classes.dex)
                                                                           at com.google.android.gms.analytics.internal.zzf.zzX(Unknown Source)
                                                                           at com.google.android.gms.analytics.GoogleAnalytics.getInstance(Unknown Source)
    

    在这一行:

    GoogleAnalytics.getInstance(this)
    

    我的解决方案是升级这个:

    dependencies {
        // play services
        compile 'com.google.android.gms:play-services-gcm:9.0.0'
        compile 'com.google.android.gms:play-services-analytics:9.0.0'
    }
    

    进入:

    dependencies {
        // play services
        compile 'com.google.android.gms:play-services-gcm:10.0.1'
        compile 'com.google.android.gms:play-services-analytics:10.0.1'
    }
    

    【讨论】:

      【解决方案5】:

      以防万一此处提到的其他修复对您不起作用,以下是对我有用的方法:

      在 build.gradle 我改变了...

      compile 'com.google.android.gms:play-services:6.5.87'
      

      ...到...

      compile 'com.google.android.gms:play-services-base:6.5.87'
      

      ...它停止挂起。我不知道为什么。

      【讨论】:

      • 更新:它解决了一段时间的问题。现在问题又回来了,它又挂了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多