Android 的 Flurry 初始化错误

Flurry initialization error with Android

在应用程序 Class 上初始化 flurry 时出现以下错误:

04-27 10:57:47.360: W/dalvikvm(26744): VFY: unable to resolve static method 22939: Lcom/google/android/gms/ads/identifier/AdvertisingIdClient;.getAdvertisingIdInfo (Landroid/content/Context;)Lcom/google/android/gms/ads/identifier/AdvertisingIdClient$Info;
04-27 10:57:47.370: W/dalvikvm(26744): VFY: unable to resolve virtual method 22937: Lcom/google/android/gms/ads/identifier/AdvertisingIdClient$Info;.getId ()Ljava/lang/String;
04-27 10:57:47.370: W/dalvikvm(26744): VFY: unable to resolve virtual method 22938: Lcom/google/android/gms/ads/identifier/AdvertisingIdClient$Info;.isLimitAdTrackingEnabled ()Z
04-27 10:57:47.510: W/System.err(26744): java.lang.NoClassDefFoundError: com.google.android.gms.ads.identifier.AdvertisingIdClient
04-27 10:57:47.510: W/System.err(26744):    at com.flurry.sdk.fe.n(SourceFile:239)
04-27 10:57:47.515: W/System.err(26744):    at com.flurry.sdk.fe.j(SourceFile:191)
04-27 10:57:47.515: W/System.err(26744):    at com.flurry.sdk.fe.i(SourceFile:154)
04-27 10:57:47.515: W/System.err(26744):    at com.flurry.sdk.fe.a(SourceFile:40)
04-27 10:57:47.520: W/System.err(26744):    at com.flurry.sdk.fe.safeRun(SourceFile:83)
04-27 10:57:47.520: W/System.err(26744):    at com.flurry.sdk.hq.run(SourceFile:49)
04-27 10:57:47.525: W/System.err(26744):    at android.os.Handler.handleCallback(Handler.java:615)
04-27 10:57:47.530: W/System.err(26744):    at android.os.Handler.dispatchMessage(Handler.java:92)
04-27 10:57:47.530: W/System.err(26744):    at android.os.Looper.loop(Looper.java:137)
04-27 10:57:47.530: W/System.err(26744):    at android.os.HandlerThread.run(HandlerThread.java:60)
04-27 10:57:47.570: W/System.err(26744): java.lang.NullPointerException
04-27 10:57:47.570: W/System.err(26744):    at com.flurry.sdk.ce.a(SourceFile:52)
04-27 10:57:47.570: W/System.err(26744):    at com.flurry.sdk.go.safeRun(SourceFile:59)
04-27 10:57:47.570: W/System.err(26744):    at com.flurry.sdk.hq.run(SourceFile:49)
04-27 10:57:47.570: W/System.err(26744):    at android.os.Handler.handleCallback(Handler.java:615)
04-27 10:57:47.575: W/System.err(26744):    at android.os.Handler.dispatchMessage(Handler.java:92)
04-27 10:57:47.575: W/System.err(26744):    at android.os.Looper.loop(Looper.java:137)
04-27 10:57:47.575: W/System.err(26744):    at android.os.HandlerThread.run(HandlerThread.java:60) 

然后在这之后我所有的事件和会话都被丢弃并且在 flurry 仪表板上不可见。

我正在使用 FlurryAnalytics-5.3.0.jar 和 FlurryAds-5.3.0.jar.

初始化代码:

FlurryAgent.setLogEnabled(BuildConstants.IS_RUNNING_DEBUG);
    if (BuildConstants.IS_RUNNING_DEBUG) {
        FlurryAgent.setLogLevel(Log.VERBOSE);
    } else {
        FlurryAgent.setLogLevel(Log.ERROR);
    }
    FlurryAgent.setLogEvents(true);
    FlurryAgent.setReportLocation(true);
    FlurryAgent.init(context, ImplementationUtils.getAnalyticsKey());

编辑: 我在清单中添加了以下代码: <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> 现在我有了这个 error\warning:

04-27 11:30:04.125: W/System.err(28320):    at com.flurry.sdk.fe.n(SourceFile:239)
04-27 11:30:04.130: W/System.err(28320):    at com.flurry.sdk.fe.j(SourceFile:191)
04-27 11:30:04.130: W/System.err(28320):    at com.flurry.sdk.fe.i(SourceFile:154)
04-27 11:30:04.140: W/System.err(28320):    at com.flurry.sdk.fe.a(SourceFile:40)
04-27 11:30:04.140: W/System.err(28320):    at com.flurry.sdk.fe.safeRun(SourceFile:83)
04-27 11:30:04.140: W/System.err(28320):    at com.flurry.sdk.hq.run(SourceFile:49)
04-27 11:30:04.185: W/System.err(28320):    at com.flurry.sdk.ce.a(SourceFile:52)
04-27 11:30:04.185: W/System.err(28320):    at com.flurry.sdk.go.safeRun(SourceFile:59)
04-27 11:30:04.185: W/System.err(28320):    at com.flurry.sdk.hq.run(SourceFile:49)
04-27 11:30:07.235: W/FlurryAgent(28320): Flurry session created for context:com.foo
04-27 11:30:07.290: W/dalvikvm(28320): Link of class 'Lcom/flurry/sdk/bp;' failed
04-27 11:30:07.290: E/dalvikvm(28320): Could not find class 'com.flurry.sdk.bp', referenced from method com.flurry.sdk.bq.a
04-27 11:30:07.290: W/dalvikvm(28320): VFY: unable to resolve new-instance 2608 (Lcom/flurry/sdk/bp;) in Lcom/flurry/sdk/bq;
04-27 11:30:07.290: W/dalvikvm(28320): Link of class 'Lcom/flurry/sdk/br;' failed
04-27 11:30:07.290: E/dalvikvm(28320): Could not find class 'com.flurry.sdk.br', referenced from method com.flurry.sdk.bq.a
04-27 11:30:07.290: W/dalvikvm(28320): VFY: unable to resolve new-instance 2610 (Lcom/flurry/sdk/br;) in Lcom/flurry/sdk/bq;
04-27 11:30:07.295: W/dalvikvm(28320): Link of class 'Lcom/flurry/sdk/bp;' failed
04-27 11:30:07.300: W/dalvikvm(28320): Link of class 'Lcom/flurry/sdk/br;' failed

将这两行放在应用程序的 onCreate() 方法中

    // configure Flurry
    FlurryAgent.setLogEnabled(false);

    // init Flurry
    FlurryAgent.init(this,FLURRY_API_KEY);

这对我来说工作得很好。 只要确保您使用的是正确的 FLURRY_API_KEY。 这适用于分析部分。

我正在为 froyo 使用 google 服务播放,但 flurry 需要 Google Play Services 6+ 作为构建依赖项。

我也将我的 minSdkVersion 从 8 (2.2.x) 升级到 9 (2.3)

升级后一切正常。