在Android 4.4及以下崩溃实现谷歌分析7.5.0(播放服务) [英] Implementing Google Analytics 7.5.0 (Play Services) in Android 4.4 and below crashes

查看:384
本文介绍了在Android 4.4及以下崩溃实现谷歌分析7.5.0(播放服务)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我实现了谷歌Analytics(分析)之后,我的应用立即崩溃比棒棒堂旧设备。

After I implemented Google Analytics my app crashes instantly on devices older than Lollipop.

07-22 15:42:43.831: W/dalvikvm(1815): VFY: unable to resolve virtual method     16407: Lcom/google/android/gms/analytics/internal/zzg;.getApplicationContext    ()Landroid/content/Context;
07-22 15:42:43.831: D/dalvikvm(1815): VFY: replacing opcode 0x6e at 0x0003
07-22 15:42:43.831: I/dalvikvm(1815): Could not find method com.google.android.gms.internal.zzld.zzoQ, referenced from method  com.google.android.gms.analytics.internal.zzf.zzV
07-22 15:42:43.831: W/dalvikvm(1815): VFY: unable to resolve static method  27402: Lcom/google/android/gms/internal/zzld;.zzoQ ()Lcom/google/android/gms/internal/zzlb;
07-22 15:42:43.831: D/dalvikvm(1815): VFY: replacing opcode 0x71 at 0x000e
07-22 15:42:43.831: W/dalvikvm(1815): VFY: unable to find class referenced in signature (Lcom/google/android/gms/internal/zzlb;)
07-22 15:42:43.831: W/dalvikvm(1815): VFY: Ljava/lang/Object; is not instance of Lcom/google/android/gms/analytics/internal/zzd;
07-22 15:42:43.831: W/dalvikvm(1815): VFY: bad arg 1 (into Lcom/google/android/gms/analytics/internal/zzd;)
07-22 15:42:43.831: W/dalvikvm(1815): VFY:  rejecting call to Lcom/google/android/gms/analytics/internal/zzf;.zza (Lcom/google/android/gms/analytics/internal/zzd;)V
07-22 15:42:43.831: W/dalvikvm(1815): VFY:  rejecting opcode 0x70 at 0x0002
07-22 15:42:43.831: W/dalvikvm(1815): VFY:  rejected Lcom/google/android/gms/analytics/internal/zzf;.zzhT ()Lcom/google/android/gms/analytics/internal/zzv;
07-22 15:42:43.831: W/dalvikvm(1815): Verifier rejected class Lcom/google/android/gms/analytics/internal/zzf;
07-22 15:42:43.831: D/AndroidRuntime(1815): Shutting down VM
07-22 15:42:43.831: W/dalvikvm(1815): threadid=1: thread exiting with uncaught exception (group=0xb0ce1b20)
07-22 15:42:43.831: E/AndroidRuntime(1815): FATAL EXCEPTION: main
07-22 15:42:43.831: E/AndroidRuntime(1815): Process: ---,      PID: 1815
07-22 15:42:43.831: E/AndroidRuntime(1815): java.lang.VerifyError: com/google/android/gms/analytics/internal/zzf
07-22 15:42:43.831: E/AndroidRuntime(1815):     at com.google.android.gms.analytics.GoogleAnalytics.getInstance(Unknown Source)
07-22 15:42:43.831: E/AndroidRuntime(1815):     at com.x.x.x.onCreate(x.java:22)
07-22 15:42:43.831: E/AndroidRuntime(1815):     at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007)
07-22 15:42:43.831: E/AndroidRuntime(1815):     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4328)
07-22 15:42:43.831: E/AndroidRuntime(1815):     at android.app.ActivityThread.access$1500(ActivityThread.java:135)
07-22 15:42:43.831: E/AndroidRuntime(1815):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
07-22 15:42:43.831: E/AndroidRuntime(1815):     at android.os.Handler.dispatchMessage(Handler.java:102)
07-22 15:42:43.831: E/AndroidRuntime(1815):     at android.os.Looper.loop(Looper.java:136)
07-22 15:42:43.831: E/AndroidRuntime(1815):     at android.app.ActivityThread.main(ActivityThread.java:5001)
07-22 15:42:43.831: E/AndroidRuntime(1815):     at java.lang.reflect.Method.invokeNative(Native Method)
07-22 15:42:43.831: E/AndroidRuntime(1815):     at java.lang.reflect.Method.invoke(Method.java:515)
07-22 15:42:43.831: E/AndroidRuntime(1815):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
07-22 15:42:43.831: E/AndroidRuntime(1815):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
07-22 15:42:43.831: E/AndroidRuntime(1815):     at dalvik.system.NativeStart.main(Native Method)

我的摇篮文件(安卓块中):

My Gradle file (inside android block):

compileSdkVersion 22
buildToolsVersion "22.0.1"

defaultConfig {
    applicationId "x.x.x"
    minSdkVersion 14
    targetSdkVersion 22
    versionCode 6
    versionName "0.5"
    multiDexEnabled true
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

我使用这个版本的谷歌游戏服务:

I use this version of Google Play Services:

编译com.google.android.gms:发挥服务 - 分析:7.5.0

我在网上搜索了很多已经在这个问题上,但无法找到任何解决的问题。最近的一次是在SO这个答案,遗憾的是它并没有为我工作了: http://stackoverflow.com/a/31432568

I searched a lot on the web already on this subject, but couldn't find anything that solved the issue. Closest one was this answer on SO, unfortunately it didn't worked out for me: http://stackoverflow.com/a/31432568

推荐答案

尝试用全新的Andr​​oid配置,使MultiDex,打造工具22.0.1了,我报道了MultiDex(你可以在这里看到了一个错误:<一href=\"http://stackoverflow.com/questions/31587765/java-lang-verifyerror-with-api-21\">java.lang.VerifyError与API&LT; 21 )

Try to enable MultiDex with new Android configurations, build-tools 22.0.1 had a bug that i reported on MultiDex (as you can see here: java.lang.VerifyError with API < 21).

因此​​,在gradle这个和使用内建工具使MultiDex 23 RC3:

So enable MultiDex in gradle and use build-tools 23 rc3:

compileSdkVersion 22
buildToolsVersion "23 rc3"

defaultConfig {
    applicationId "x.x.x"
    minSdkVersion 14
    targetSdkVersion 22
    versionCode 6
    versionName "0.5"
    multiDexEnabled = true
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

导入它在你的依赖关系(最后一个版本是1.0.1)

import it in your dependencies (last version is 1.0.1)

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:multidex:1.0.1'
}

和它连接到您的基本上下文在应用程序中:

And attach it to your base context in your application:

public class MyApplication extends CustomLibraryApplication {
    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }
}

或延长MultiDexApplication:

Or extend a MultiDexApplication:

public class MyApplication extends MultiDexApplication {

}

或在清单中使用MultiDexApplication。

Or use a MultiDexApplication in the manifest.

这篇关于在Android 4.4及以下崩溃实现谷歌分析7.5.0(播放服务)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆