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'
You must have all the google play service line in the same version:
In your Gradle file all the versions of google-play-service and firebase should use the same version.
As you are using :
You should use :
compile 'com.google.firebase:firebase-messaging:10.0.1'
// and not 9.2.1Make 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.
It's an Android Studio bug, it is NOT offering to automatically upgrade firebase libs like it does for play-services* libs.
autoupdate
no autoupdate (need to manually up the version to same as play-services*)
Use something like this:
Make sure apply plugin comes below dependencies.
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.