Java Android GoogleAppClient-NoClassDefFoundError:com/google/Android/gms/internal/zzsa

Java Android GoogleAppClient-NoClassDefFoundError:com/google/Android/gms/internal/zzsa,java,android,google-api,google-api-client,Java,Android,Google Api,Google Api Client,我正在开发一个应用程序,它使用GoogleAppClient(显然)在后台获取用户的当前位置 对于这个任务,我使用IntentService和WakefulBroadcastReceiver(每小时获取一次位置)。在开发环境中一切正常,但在Play Store中部署时,某些设备出现以下错误: Fatal Exception: java.lang.NoClassDefFoundError: com/google/android/gms/internal/zzsa at com.goo

我正在开发一个应用程序,它使用GoogleAppClient(显然)在后台获取用户的当前位置

对于这个任务,我使用IntentService和WakefulBroadcastReceiver(每小时获取一次位置)。在开发环境中一切正常,但在Play Store中部署时,某些设备出现以下错误:

Fatal Exception: java.lang.NoClassDefFoundError: com/google/android/gms/internal/zzsa
       at com.google.android.gms.common.api.GoogleApiClient$Builder.<init>(Unknown Source)
       at tellerina.com.br.vivara.services.MyService.onHandleIntent(MyService.java:37)
       at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:157)
       at android.os.HandlerThread.run(HandlerThread.java:61)
非常感谢

编辑

应用程序build.gradle

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.21.2'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "app.package"
        minSdkVersion 14
        targetSdkVersion 22
        versionCode 9
        versionName "1.5.2"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    dexOptions {
        javaMaxHeapSize "4g"
    }
}

repositories {
    mavenCentral()
    maven { url 'https://maven.fabric.io/public' }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile fileTree(dir: 'libs', include: ['*.so'])
    compile(project(':volley')) {
        exclude module: 'support-v4'
    }
    compile files('libs/commons-codec-1.9.jar')
    compile('com.navercorp.volleyextensions:volley-views:2.0.+') {
        exclude module: 'library'
    }
    compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') {
        transitive = true;
    }
    compile 'com.android.support:appcompat-v7:23+'
    compile 'com.android.support:cardview-v7:23+'
    compile 'com.android.support:recyclerview-v7:23+'
    compile 'com.google.code.gson:gson:2.3.1'
    compile 'io.card:android-sdk:5.1.1'
    compile 'com.github.ksoichiro:androidpagecontrol:0.1.1'
    compile 'me.relex:circleindicator:1.1.5@aar'
    compile 'com.nineoldandroids:library:2.4.0'
    compile 'com.daimajia.easing:library:1.0.1@aar'
    compile 'com.daimajia.androidanimations:library:1.1.3@aar'
    compile 'com.facebook.android:facebook-android-sdk:4.5.0'
    compile 'br.com.jansenfelipe:androidmask:1.0.1'
    compile 'com.google.android.gms:play-services:8.4.0'
    compile 'com.android.support:multidex:1.0.0'
    compile 'com.android.support:design:23+'
    compile 'com.squareup.picasso:picasso:2.5.2'
}
apply plugin: 'com.google.gms.google-services'
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.5.0'
        classpath 'com.google.gms:google-services:+'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}
根项目build.gradle

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.21.2'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "app.package"
        minSdkVersion 14
        targetSdkVersion 22
        versionCode 9
        versionName "1.5.2"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    dexOptions {
        javaMaxHeapSize "4g"
    }
}

repositories {
    mavenCentral()
    maven { url 'https://maven.fabric.io/public' }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile fileTree(dir: 'libs', include: ['*.so'])
    compile(project(':volley')) {
        exclude module: 'support-v4'
    }
    compile files('libs/commons-codec-1.9.jar')
    compile('com.navercorp.volleyextensions:volley-views:2.0.+') {
        exclude module: 'library'
    }
    compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') {
        transitive = true;
    }
    compile 'com.android.support:appcompat-v7:23+'
    compile 'com.android.support:cardview-v7:23+'
    compile 'com.android.support:recyclerview-v7:23+'
    compile 'com.google.code.gson:gson:2.3.1'
    compile 'io.card:android-sdk:5.1.1'
    compile 'com.github.ksoichiro:androidpagecontrol:0.1.1'
    compile 'me.relex:circleindicator:1.1.5@aar'
    compile 'com.nineoldandroids:library:2.4.0'
    compile 'com.daimajia.easing:library:1.0.1@aar'
    compile 'com.daimajia.androidanimations:library:1.1.3@aar'
    compile 'com.facebook.android:facebook-android-sdk:4.5.0'
    compile 'br.com.jansenfelipe:androidmask:1.0.1'
    compile 'com.google.android.gms:play-services:8.4.0'
    compile 'com.android.support:multidex:1.0.0'
    compile 'com.android.support:design:23+'
    compile 'com.squareup.picasso:picasso:2.5.2'
}
apply plugin: 'com.google.gms.google-services'
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.5.0'
        classpath 'com.google.gms:google-services:+'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}
编辑2


使用Fabric,现在我可以看到所有受此问题影响的用户都在使用Android 4.x。也许游戏服务的发布被窃听了,我不知道。但它正在减少出现此错误的设备数量。

这显然是gms(Google Play Services)的proguard配置错误

  • 或者它是由错误的版本导致的,您可以根据另一个版本进行构建
  • 或者它是由设备上安装的Play Services引起的,您只能希望Play Services团队已停止此版本的roolout,直到修复错误为止

你得到了

致命异常:java.lang.NoClassDefFoundError: com/google/android/gms/internal/zzsa 位于com.google.android.gms.common.api.GoogleAppClient$Builder。(未知) (来源)

在Java中,当Java虚拟机无法在运行时找到编译时可用的特定类时,就会出现

旧的

 dependencies {
   // classpath 'com.android.tools.build:gradle:1.5.0'
   // classpath 'com.google.gms:google-services:+' //(Avoid Calling "+")


    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
GoogleAppClient与各种静态方法一起使用。一些 这些方法需要连接GoogleAppClient,有些方法需要连接GoogleAppClient 在连接GoogleAppClient之前排队接听电话

您应该尝试使用
build.gradle

顶级生成文件,您可以在其中添加通用的配置选项 所有子项目/模块

建议 你可以打电话

  • 编译'com.android.support:appcompat-v7:23.1.1'
    而不是
    v7:23+
  • 然后
    清理重建重新启动同步项目
    。希望这有帮助

    编辑

    Android构建系统由Gradle的Android插件组成。 Gradle是一个高级构建工具包,用于管理依赖项和 允许您定义自定义生成逻辑。Android Studio使用渐变 包装器完全集成了Gradle的Android插件。机器人 Gradle插件也独立于Android Studio运行

    插件就是实现插件接口的任何类。Gradle提供核心插件作为其发行版的一部分,因此只需像上面那样应用插件即可

    beta2和alpha-5梯度不显示错误。但没有“应用” 插件:“服务”和“类路径”未生成 gcm\u gcm的默认发送ID

    您可以检查


    最后,您应该使用应用插件

    !我花了几个小时试图解决这个问题,也许它已经解决了,但事实证明,你使用的任何谷歌类在gradle中都必须是相同的版本,即

       compile 'com.google.android.gms:play-services-identity:7.8.0'
    
    compile 'com.google.android.gms:play-services-location:7.5.0'
    
    我说的是两个不同的版本。有一次我偶然发现:

       compile 'com.google.android.gms:play-services-identity:7.8.0'
    
    compile 'com.google.android.gms:play-services-location:7.8.0'
    

    问题解决了

    事实上:com.google.android.gms:play services:8.3.0我已经更新了deps,但我阅读了发行说明,没有关于位置服务解决方案的内容-除非通过WiFi和手机塔改进位置。更正:未能解析:com.google.android.gms:play services:8.4.0显示您的
    build.gradle
    &
    classpath
    。我发现:插件太旧了,请更新到更新的版本,或者将android_DAILY_OVERRIDE环境变量设置为“2260A2562162626D4A38D9E94FD161E5383F8D6B5E”,并显示alpha5 gradle不显示错误。但是如果没有“应用插件:服务”和“类路径”,它就不会为gcm生成gcm_defaultSenderId。嘿,伙计,使用beta2和alpha-5渐变不会显示错误。但是如果没有“apply plugin:'services'”和“classpath”,它就不会为GCMYes生成gcm_defaultSenderId!!有了这个配置,没有更多的设备(即使是Android 4.x)会收到这个错误!非常感谢你对我的帮助!我想我在其他时候使用这个配置时犯了一个错误,但是我知道它没问题!我对所有使用Fabric的服务都使用相同的版本,现在我可以看到所有受此问题影响的用户都在使用Android 4.x。也许游戏服务的发布被窃听了,我不知道。但它正在减少出现这种错误的设备数量。
       compile 'com.google.android.gms:play-services-identity:7.8.0'
    
    compile 'com.google.android.gms:play-services-location:7.8.0'