I am developing an application that uses GoogleAPIClient to (obviously) get the user's current location in the background.
For this task I use IntentService with WakefulBroadcastReceiver (to get location every hour). Everything worked fine in the development environment, but when deploying to the Play Store, some devices get this error:
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)
I searched the Internet for answers but found nothing. Here is the point at which the exception appears:
mGoogleApiClient = new GoogleApiClient.Builder(MyApplication.getContext()) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .addApi(LocationServices.API) .build();
Thank you so much!
EDIT
app 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'
Root build.gradle project
// 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() } }
EDIT 2
Using Fabric, now I see that all users affected by this issue are using Android 4.x. Perhaps the distribution of the Services is tapped, I donβt know. But this reduces the number of devices with this error.
java android google-api google-api-client
Elvis oliveira
source share