com.google.android.gms.common.internal.safe parcel.safe parcelable not found

JavaAndroidFirebaseFirebase Cloud-Messaging

Java Problem Overview


I am trying to add notification services to my app using FCM and tutorial given on https://www.simplifiedcoding.net/firebase-cloud-messaging-android/ Everything has done and working like getting token etc. but now after creating messaging handler, I started getting error:

Error:(22, 26) error: cannot access AbstractSafeParcelable
class file for com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable not found

and build is failed. Pls guide. code for gradle is:

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

    }

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


repositories {
    maven { url 'https://maven.fabric.io/public' }
    maven {
        url "https://s3-ap-southeast-1.amazonaws.com/godel-release/godel/"
    }
}


android {
    compileSdkVersion 25
    buildToolsVersion "24.0.3"
    useLibrary 'org.apache.http.legacy'
    defaultConfig {
        applicationId "jss.smartapp"
        minSdkVersion 16
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }
    buildTypes {
        release {

            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }
    }


    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    testCompile 'junit:junit:4.12'
    compile files('libs/activation.jar')
    compile files('libs/additionnal.jar')
//Apache IO
    compile files('libs/commons-io-2.5.jar')
    compile 'com.android.support:design:25.0.0'
    compile 'com.android.support:appcompat-v7:25.0.0'
//Crashlytics
    compile('com.crashlytics.sdk.android:crashlytics:2.6.5@aar') {
        transitive = true;
    }
    //Dropbox
    compile 'com.dropbox.core:dropbox-core-sdk:2.0.1'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.squareup.okhttp:okhttp:2.4.0'
//FTP
    compile files('libs/ftp4j-1.7.2.jar')
//Http
    compile 'com.squareup.okhttp3:okhttp:3.4.2'
//Instamojo
    compile 'com.instamojo:android-sdk:+'
//Material Design Didalogs
    compile 'com.afollestad.material-dialogs:commons:0.9.1.0'
    compile 'org.apache.httpcomponents:httpclient-android:4.3.5.1'
//GSON
    compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'
    compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
//multidex dependency
    compile 'com.android.support:multidex:1.0.1'
    //box dependencies
    compile 'com.box:box-java-sdk:2.1.1'
    compile 'com.box:box-android-sdk:3.0.2'
//google drive dependency
    compile 'com.google.android.gms:play-services-drive:10.0.1'
    //one drive dependency
    compile('com.onedrive.sdk:onedrive-sdk-android:1.2+') {
        transitive = false
    }
    compile('com.microsoft.services.msa:msa-auth:0.8.+')
    compile('com.microsoft.aad:adal:1.1.+')

    //justify test
    compile 'com.github.bluejamesbond:textjustify-android:2.1.6'

    //image downnloader
    /*compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'*/
//Glide Image downloading
    compile 'com.github.bumptech.glide:glide:3.7.0'
    compile 'com.android.support:support-v4:25.1.0'
    compile 'com.google.firebase:firebase-messaging:9.2.1'

}
apply plugin: 'com.google.gms.google-services'

Java Solutions


Solution 1 - Java

In your Gradle file all the versions of google-play-service and firebase should use the same version.

As you are using :

 compile 'com.google.android.gms:play-services-drive:10.0.1'

You should use :

compile 'com.google.firebase:firebase-messaging:10.0.1' // and not 9.2.1

Solution 2 - Java

You must have all the google play service line in the same version:

compile 'com.google.android.gms:play-services:11.0.1'
compile 'com.google.android.gms:play-services-maps:11.0.1'
compile 'com.google.firebase:firebase-core:11.0.1'
compile 'com.google.firebase:firebase-messaging:11.0.1'

Solution 3 - Java

It's an Android Studio bug, it is NOT offering to automatically upgrade firebase libs like it does for play-services* libs.

autoupdate

compile 'com.google.android.gms:play-services-drive:10.0.1'

no autoupdate (need to manually up the version to same as play-services*)

compile 'com.google.firebase:firebase-messaging:10.0.1'

Solution 4 - Java

Use something like this:

dependencies {
    compile 'com.google.android.gms:play-services:11.0.1'
    compile 'com.google.firebase:firebase-core:11.0.1'
    compile 'com.google.firebase:firebase-messaging:11.0.1'
}
apply plugin: 'com.google.gms.google-services'

Make sure apply plugin comes below dependencies.

Solution 5 - Java

Make sure your google service version matches your firebase version. currently compile 'com.google.android.gms:play-services-drive:10.0.1' does not match compile 'com.google.firebase:firebase-messaging:9.2.1' What you have to do is to change 'com.google.firebase:firebase-messaging:9.2.1' to 'com.google.firebase:firebase-messaging:10.0.1' so that the versions matches.

Solution 6 - Java

What finally saved me:

In android studio, switch to Project view instead of Android view. Delete .gradle folderm and also the gradle.properties file. Clean the project. Sync gradle again.

I have no clue why this worked. Deleting only the .gradle folder didn't do the job and the newly made gradle.properties is exactly the same as the old one! But my issue is fixed.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionPanacheView Question on Stackoverflow
Solution 1 - JavaGuillaume agisView Answer on Stackoverflow
Solution 2 - JavaQohat Pretel PoloView Answer on Stackoverflow
Solution 3 - JavaDavid AView Answer on Stackoverflow
Solution 4 - JavagarryView Answer on Stackoverflow
Solution 5 - JavaAlfred Ayi-bonteView Answer on Stackoverflow
Solution 6 - JavaTinaView Answer on Stackoverflow