I am receiving at run time:
Class not found when unmarshalling: com.google.android.gms.common.api.Scope and
Class not found when unmarshalling:
com.google.android.gms.auth.api.signin.internal.SignInConfiguration
errors when creating an release version of my app.
My build.gradle
minSdkVersion 21
targetSdkVersion 23
versionCode 10
versionName "1.0"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
// compile 'com.googlecode.java-diff-utils:diffutils:1.3.0 (This is inside primke)'
compile 'com.github.thorbenprimke:realm-recyclerview:0.9.20'
compile 'com.android.support:recyclerview-v7:24.0.0'
compile 'com.android.support:design:24.0.0'
compile 'com.android.support:support-v4:24.0.0'
compile 'com.android.support:appcompat-v7:24.0.0'
compile 'com.google.firebase:firebase-auth:9.0.2'
compile 'com.google.android.gms:play-services-auth:9.0.2'
compile 'com.android.support:cardview-v7:24.0.0'
compile 'com.google.android.gms:play-services-drive:9.0.2'
compile 'com.google.android.gms:play-services-gcm:9.0.2'
}
apply plugin: 'com.google.gms.google-services'
I have attempted to -keep these classes but it doesn't seem to take as the error still exists. Perhaps it is in there twice somehow. I keep adding things to the rule.pro file based on searches for similar problems and now have a "kitchen sink" rules file. I'm sure there is redundancy in the file and perhaps that is part of the problem. Any assistance would be greatly appreciated. I'm new at this so a point to examples is also appreciated.
-keepattributes Signature
-keepattributes *Annotation*
-keep class com.google.android.gms.auth.api.signin.internal.SignInConfiguration
-keep class com.google.android.gms.common.api.Scope
-keep class * extends java.util.ListResourceBundle {
protected Object[][] getContents();
}
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
public static final *** NULL;
}
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
@com.google.android.gms.common.annotation.KeepName *;
}
-keepnames class * implements android.os.Parcelable {
public static final ** CREATOR;
}
-keep interface com.google.** { *;}
-keep class * extends com.google.api.client.json.GenericJson {
*;
}
-dontwarn com.google.**
-dontwarn com.google.android.gms.**
-dontwarn com.google.android.gms.R**
-dontnote com.google.android.gms.cast.**
-dontnote com.google.android.gms.common.**
-dontnote com.google.android.gms.dynamic.**
-dontnote com.google.android.gms.internal.**
# Keep all enum values and valueOf methods. See
# http://proguard.sourceforge.net/index.html#manual/examples.html
# for the reason for this. Also, see http://crbug.com/248037.
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
# Preserve sufficient information for simple Serializable classes.
-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}
-keep class com.android.vending.billing.**
-keep public class com.google.android.gms.**
-keep class com.google.** {*;}
-keep class com.newrelic.** {*;}
-keep class com.google.android.gms.auth.*
-keep class com.google.android.gms.auth.api.Auth
-keep class com.google.android.gms.auth.api.signin.GoogleSignInAccount
-keep class com.google.android.gms.auth.api.signin.GoogleSignInOptions
-keep class com.google.android.gms.auth.api.signin.GoogleSignInResult
-keep class com.google.android.gms.common.ConnectionResult
-keep class com.google.android.gms.common.GoogleApiAvailability
-keep class com.google.android.gms.common.Scopes
-keep class com.google.android.gms.common.SignInButton
-keep class com.google.android.gms.common.api.GoogleApiClient
-keep class com.google.android.gms.common.api.OptionalPendingResult
-keep class com.google.android.gms.common.api.ResultCallback
-keep class com.google.android.gms.common.api.Status
-keep class com.google.api.services.drive.**
-keep class com.google.android.gms.drive.Drive
-keep class com.google.android.gms.drive.DriveApi
-keep class com.google.android.gms.drive.DriveContents
-keep class com.google.android.gms.drive.DriveFile
-keep class com.google.android.gms.drive.DriveFolder
-keep class com.google.android.gms.tasks.OnCompleteListener
-keep class com.google.android.gms.tasks.Task
-keep class com.google.firebase.auth.AuthResult
-keep class com.google.firebase.auth.FirebaseAuth
-keep class com.google.firebase.auth.FirebaseUser
-keep class com.google.firebase.auth.GoogleAuthProvider
-keep class com.google.firebase.auth.AuthCredential
Here's my build.gradle
dependencies {
classpath 'com.android.tools.build:gradle:2.1.2'
classpath "io.realm:realm-gradle-plugin:1.0.1"
classpath 'com.google.gms:google-services:3.0.0'
}
}
allprojects {
repositories {
jcenter()
maven { url 'https://maven.fabric.io/public' }
maven { url "https://jitpack.io" }
mavenLocal()}
}
I thought that maybe I could use the Jack and Jill method but ran into Complier error so I quit there. Suggestions or Solutions?