Fabric / Crashlytics NoClassDefFoundError on specific devices only

I see a crash on Google Play related to Fabric / Crashlytics. This happened after I upgraded from regular Crashlytics to the new Crashlytics. I can play it only on one of my devices (Galaxy S2). All the other devices that I have (Nexus 5 and S4) do not crash. Here's the stack trace:

08-19 09:32:26.328 7084-7084/com.tsm.countryjam D/dalvikvm﹕ WAIT_FOR_CONCURRENT_GC blocked 0ms 08-19 09:32:26.653 7084-7088/com.tsm.countryjam D/dalvikvm﹕ GC_CONCURRENT freed 251K, 12% free 9567K/10823K, paused 12ms+2ms, total 70ms 08-19 09:32:26.653 7084-7084/com.tsm.countryjam D/dalvikvm﹕ WAIT_FOR_CONCURRENT_GC blocked 42ms 08-19 09:32:26.653 7084-7100/com.tsm.countryjam D/dalvikvm﹕ WAIT_FOR_CONCURRENT_GC blocked 42ms 08-19 09:32:26.668 7084-7084/com.tsm.countryjam I/dalvikvm﹕ Failed resolving Lcom/crashlytics/android/beta/Beta; interface 9027 'Lio/fabric/sdk/android/services/common/DeviceIdentifierProvider;' 08-19 09:32:26.668 7084-7084/com.tsm.countryjam W/dalvikvm﹕ Link of class 'Lcom/crashlytics/android/beta/Beta;' failed 08-19 09:32:26.668 7084-7084/com.tsm.countryjam E/dalvikvm﹕ Could not find class 'com.crashlytics.android.beta.Beta', referenced from method com.crashlytics.android.Crashlytics.<init> 08-19 09:32:26.668 7084-7084/com.tsm.countryjam W/dalvikvm﹕ VFY: unable to resolve new-instance 1791 (Lcom/crashlytics/android/beta/Beta;) in Lcom/crashlytics/android/Crashlytics; 08-19 09:32:26.668 7084-7084/com.tsm.countryjam D/dalvikvm﹕ VFY: replacing opcode 0x22 at 0x000a 08-19 09:32:26.668 7084-7084/com.tsm.countryjam I/dalvikvm﹕ Failed resolving Lcom/crashlytics/android/beta/Beta; interface 9027 'Lio/fabric/sdk/android/services/common/DeviceIdentifierProvider;' 08-19 09:32:26.668 7084-7084/com.tsm.countryjam W/dalvikvm﹕ Link of class 'Lcom/crashlytics/android/beta/Beta;' failed 08-19 09:32:26.668 7084-7084/com.tsm.countryjam W/dalvikvm﹕ VFY: unable to find class referenced in signature (Lcom/crashlytics/android/beta/Beta;) 08-19 09:32:26.673 7084-7084/com.tsm.countryjam I/dalvikvm﹕ Failed resolving Lcom/crashlytics/android/beta/Beta; interface 9027 'Lio/fabric/sdk/android/services/common/DeviceIdentifierProvider;' 08-19 09:32:26.673 7084-7084/com.tsm.countryjam W/dalvikvm﹕ Link of class 'Lcom/crashlytics/android/beta/Beta;' failed 08-19 09:32:26.673 7084-7084/com.tsm.countryjam W/dalvikvm﹕ VFY: unable to find class referenced in signature (Lcom/crashlytics/android/core/PinningInfoProvider;) 08-19 09:32:26.673 7084-7084/com.tsm.countryjam W/dalvikvm﹕ VFY: unable to find class referenced in signature (Lcom/crashlytics/android/core/PinningInfoProvider;) 08-19 09:32:26.673 7084-7084/com.tsm.countryjam W/dalvikvm﹕ VFY: unable to find class referenced in signature (Lcom/crashlytics/android/core/PinningInfoProvider;) 08-19 09:32:26.678 7084-7084/com.tsm.countryjam W/dalvikvm﹕ VFY: unable to find class referenced in signature (Lcom/crashlytics/android/core/CrashlyticsListener;) 08-19 09:32:26.678 7084-7084/com.tsm.countryjam W/dalvikvm﹕ VFY: unable to find class referenced in signature (Lcom/crashlytics/android/core/CrashlyticsListener;) 08-19 09:32:26.678 7084-7084/com.tsm.countryjam I/dalvikvm﹕ Failed resolving Lcom/crashlytics/android/beta/Beta; interface 9027 'Lio/fabric/sdk/android/services/common/DeviceIdentifierProvider;' 08-19 09:32:26.678 7084-7084/com.tsm.countryjam W/dalvikvm﹕ Link of class 'Lcom/crashlytics/android/beta/Beta;' failed 08-19 09:32:26.678 7084-7084/com.tsm.countryjam D/dalvikvm﹕ DexOpt: unable to opt direct call 0x3474 at 0x0f in Lcom/crashlytics/android/Crashlytics;.<init> 08-19 09:32:26.678 7084-7084/com.tsm.countryjam I/dalvikvm﹕ Failed resolving Lcom/crashlytics/android/answers/SessionEventTransform; interface 9072 'Lio/fabric/sdk/android/services/events/EventTransform;' 08-19 09:32:26.678 7084-7084/com.tsm.countryjam W/dalvikvm﹕ Link of class 'Lcom/crashlytics/android/answers/SessionEventTransform;' failed 08-19 09:32:26.678 7084-7084/com.tsm.countryjam E/dalvikvm﹕ Could not find class 'com.crashlytics.android.answers.SessionEventTransform', referenced from method com.crashlytics.android.answers.Answers.initializeSessionAnalytics 08-19 09:32:26.678 7084-7084/com.tsm.countryjam W/dalvikvm﹕ VFY: unable to resolve new-instance 1784 (Lcom/crashlytics/android/answers/SessionEventTransform;) in Lcom/crashlytics/android/answers/Answers; 08-19 09:32:26.678 7084-7084/com.tsm.countryjam D/dalvikvm﹕ VFY: replacing opcode 0x22 at 0x0004 08-19 09:32:26.678 7084-7084/com.tsm.countryjam I/dalvikvm﹕ Could not find method io.fabric.sdk.android.services.common.CommonUtils.logControlledError, referenced from method com.crashlytics.android.answers.Answers.initializeSessionAnalytics 08-19 09:32:26.678 7084-7084/com.tsm.countryjam W/dalvikvm﹕ VFY: unable to resolve static method 59049: Lio/fabric/sdk/android/services/common/CommonUtils;.logControlledError (Landroid/content/Context;Ljava/lang/String;Ljava/lang/Throwable;)V 08-19 09:32:26.678 7084-7084/com.tsm.countryjam D/dalvikvm﹕ VFY: replacing opcode 0x77 at 0x0194 08-19 09:32:26.678 7084-7084/com.tsm.countryjam I/dalvikvm﹕ Could not find method io.fabric.sdk.android.services.settings.Settings.getInstance, referenced from method com.crashlytics.android.answers.Answers.doInBackground 08-19 09:32:26.678 7084-7084/com.tsm.countryjam W/dalvikvm﹕ VFY: unable to resolve static method 59331: Lio/fabric/sdk/android/services/settings/Settings;.getInstance ()Lio/fabric/sdk/android/services/settings/Settings; 08-19 09:32:26.678 7084-7084/com.tsm.countryjam D/dalvikvm﹕ VFY: replacing opcode 0x71 at 0x000c 08-19 09:32:26.678 7084-7084/com.tsm.countryjam I/dalvikvm﹕ Could not find method io.fabric.sdk.android.services.common.CommonUtils.getStringsFileValue, referenced from method com.crashlytics.android.answers.Answers.getOverridenSpiEndpoint 08-19 09:32:26.678 7084-7084/com.tsm.countryjam W/dalvikvm﹕ VFY: unable to resolve static method 59043: Lio/fabric/sdk/android/services/common/CommonUtils;.getStringsFileValue (Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String; 08-19 09:32:26.678 7084-7084/com.tsm.countryjam D/dalvikvm﹕ VFY: replacing opcode 0x71 at 0x0008 08-19 09:32:26.678 7084-7084/com.tsm.countryjam E/dalvikvm﹕ Could not find class 'io.fabric.sdk.android.services.persistence.FileStoreImpl', referenced from method com.crashlytics.android.answers.Answers.getSdkDirectory 08-19 09:32:26.678 7084-7084/com.tsm.countryjam W/dalvikvm﹕ VFY: unable to resolve new-instance 9090 (Lio/fabric/sdk/android/services/persistence/FileStoreImpl;) in Lcom/crashlytics/android/answers/Answers; 08-19 09:32:26.678 7084-7084/com.tsm.countryjam D/dalvikvm﹕ VFY: replacing opcode 0x22 at 0x0001 08-19 09:32:26.678 7084-7084/com.tsm.countryjam I/dalvikvm﹕ Could not find method io.fabric.sdk.android.services.common.Crash$FatalException.getSessionId, referenced from method com.crashlytics.android.answers.Answers.onException 08-19 09:32:26.678 7084-7084/com.tsm.countryjam W/dalvikvm﹕ VFY: unable to resolve virtual method 59056: Lio/fabric/sdk/android/services/common/Crash$FatalException;.getSessionId ()Ljava/lang/String; 08-19 09:32:26.678 7084-7084/com.tsm.countryjam D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x000b 08-19 09:32:26.683 7084-7084/com.tsm.countryjam I/dalvikvm﹕ Could not find method io.fabric.sdk.android.services.common.Crash$LoggedException.getSessionId, referenced from method com.crashlytics.android.answers.Answers.onException 08-19 09:32:26.683 7084-7084/com.tsm.countryjam W/dalvikvm﹕ VFY: unable to resolve virtual method 59058: Lio/fabric/sdk/android/services/common/Crash$LoggedException;.getSessionId ()Ljava/lang/String; 08-19 09:32:26.683 7084-7084/com.tsm.countryjam D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x000b 08-19 09:32:26.683 7084-7084/com.tsm.countryjam I/dalvikvm﹕ Failed resolving Lcom/crashlytics/android/answers/SessionEventTransform; interface 9072 'Lio/fabric/sdk/android/services/events/EventTransform;' 08-19 09:32:26.683 7084-7084/com.tsm.countryjam W/dalvikvm﹕ Link of class 'Lcom/crashlytics/android/answers/SessionEventTransform;' failed 08-19 09:32:26.683 7084-7084/com.tsm.countryjam D/dalvikvm﹕ DexOpt: unable to opt direct call 0x3455 at 0x0c in Lcom/crashlytics/android/answers/Answers;.initializeSessionAnalytics 08-19 09:32:26.683 7084-7084/com.tsm.countryjam D/dalvikvm﹕ DexOpt: unable to opt direct call 0xe6da at 0x19 in Lcom/crashlytics/android/answers/Answers;.initializeSessionAnalytics 08-19 09:32:26.683 7084-7084/com.tsm.countryjam D/dalvikvm﹕ DexOpt: unable to opt direct call 0xe78c at 0x36 in Lcom/crashlytics/android/answers/Answers;.initializeSessionAnalytics 08-19 09:32:26.683 7084-7084/com.tsm.countryjam W/dalvikvm﹕ Unable to resolve superclass of Lcom/crashlytics/android/answers/SessionAnalyticsFilesManager; (9073) 08-19 09:32:26.683 7084-7084/com.tsm.countryjam W/dalvikvm﹕ Link of class 'Lcom/crashlytics/android/answers/SessionAnalyticsFilesManager;' failed 08-19 09:32:26.683 7084-7084/com.tsm.countryjam D/dalvikvm﹕ DexOpt: unable to opt direct call 0x342a at 0x4b in Lcom/crashlytics/android/answers/Answers;.initializeSessionAnalytics 08-19 09:32:26.683 7084-7084/com.tsm.countryjam I/dalvikvm﹕ DexOpt: unable to optimize static field ref 0x5e1e at 0x72 in Lcom/crashlytics/android/answers/Answers;.initializeSessionAnalytics 08-19 09:32:26.683 7084-7084/com.tsm.countryjam I/dalvikvm﹕ DexOpt: unable to optimize static field ref 0x5e1c at 0x7e in Lcom/crashlytics/android/answers/Answers;.initializeSessionAnalytics 08-19 09:32:26.683 7084-7084/com.tsm.countryjam I/dalvikvm﹕ DexOpt: unable to optimize static field ref 0x5e21 at 0x8a in Lcom/crashlytics/android/answers/Answers;.initializeSessionAnalytics 08-19 09:32:26.683 7084-7084/com.tsm.countryjam D/dalvikvm﹕ DexOpt: unable to opt direct call 0xe78f at 0x115 in Lcom/crashlytics/android/answers/Answers;.initializeSessionAnalytics 08-19 09:32:26.683 7084-7084/com.tsm.countryjam D/dalvikvm﹕ DexOpt: unable to opt direct call 0xe78f at 0x17d in Lcom/crashlytics/android/answers/Answers;.initializeSessionAnalytics 08-19 09:32:26.683 7084-7084/com.tsm.countryjam I/dalvikvm﹕ DexOpt: unable to optimize instance field ref 0x5e91 at 0x20 in Lcom/crashlytics/android/answers/Answers;.doInBackground 08-19 09:32:26.683 7084-7084/com.tsm.countryjam I/dalvikvm﹕ DexOpt: unable to optimize instance field ref 0x5e8c at 0x22 in Lcom/crashlytics/android/answers/Answers;.doInBackground 08-19 09:32:26.683 7084-7084/com.tsm.countryjam I/dalvikvm﹕ DexOpt: unable to optimize instance field ref 0x5e8e at 0x2a in Lcom/crashlytics/android/answers/Answers;.doInBackground 08-19 09:32:26.683 7084-7084/com.tsm.countryjam D/dalvikvm﹕ DexOpt: unable to opt direct call 0xe7ac at 0x07 in Lcom/crashlytics/android/answers/Answers;.getSdkDirectory 08-19 09:32:26.683 7084-7084/com.tsm.countryjam D/AndroidRuntime﹕ Shutting down VM 08-19 09:32:26.683 7084-7084/com.tsm.countryjam W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x4127b2a0) 08-19 09:32:26.683 7084-7084/com.tsm.countryjam E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.NoClassDefFoundError: com.crashlytics.android.beta.Beta at com.crashlytics.android.Crashlytics.<init>(Crashlytics.java:29) at com.tsm.events.application.TownsquareEvents.onCreate(TownsquareEvents.java:59) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1014) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4251) at android.app.ActivityThread.access$1400(ActivityThread.java:140) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1297) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4921) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794) at dalvik.system.NativeStart.main(Native Method) 

And here is the contents of my build.gradle:

 buildscript { repositories { jcenter() maven { url 'https://maven.fabric.io/public' } } dependencies { classpath 'com.android.tools.build:gradle:1.0.+' classpath 'io.fabric.tools:gradle:1.+' } } apply plugin: 'com.android.application' apply plugin: 'io.fabric' repositories { jcenter() flatDir { dirs 'libs' } maven { url 'https://maven.fabric.io/public' } } android { compileSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { applicationId "com.tsm.events" minSdkVersion 15 targetSdkVersion 22 versionCode 1 versionName "1.0.0" multiDexEnabled = true } dexOptions { javaMaxHeapSize "4g" } buildTypes { debug { debuggable true } release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile project(':libraries:ResideMenu') //compile 'com.android.support:support-v4:20.0.+' compile 'com.android.support:support-v4:22.0.+' compile files('libs/universal-image-loader-1.9.3.jar') compile 'io.realm:realm-android:0.81.1' compile 'se.emilsjolander:stickylistheaders:2.5.2' compile 'com.google.android.gms:play-services:6.5.87' compile 'com.parse.bolts:bolts-android:1.+' compile fileTree(dir: 'libs', include: 'Parse-*.jar') compile('com.crashlytics.sdk.android:crashlytics:2.4.0@aar') { transitive = true } // Twitter Kit compile('com.twitter.sdk.android:twitter:1.6.0@aar') { transitive = true } compile('com.twitter.sdk.android:tweet-composer:0.8.0@aar') { transitive = true; } compile 'com.facebook.android:facebook-android-sdk:3.20.0' compile 'com.google.maps.android:android-maps-utils:0.3+' compile(name: 'estimote-sdk-preview', ext: 'aar') compile files('libs/biweekly-0.4.2.jar') compile files('libs/jackson-core-2.5.2.jar') } 
+6
java android crashlytics fabric-twitter
source share
5 answers

I just figured it out with a hunch! I recently had to add multi-dex support after upgrading to the new Fabric framework, and I got the feeling that maybe I didn't do it right. Therefore, after adding these additional changes now it no longer crashes:

In my build.gradle, I added incremental settings:

 dexOptions { incremental true javaMaxHeapSize "4g" } 

and additional dependency:

 compile 'com.android.support:multidex:' 

and in my application class I am extending MultiDexApplication:

 public class TownsquareEvents extends android.support.multidex.MultiDexApplication 
+22
source share

create this: compile 'com.android.support:multidex:1.0.1'

and add this method to your application class:

  protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } 
+4
source share

Additional information two years later: It seems that the problem only occurs on devices running Android <5 (if this helps someone narrow down their search for an accident ...)

+4
source share

If you use MultiDex correctly and are still confusing this error, perhaps because you are using Proguard and MultiDex do not know which classes to keep.

Therefore, do not forget to “synchronize” your MultiDex file with the Proguard .pro file.

An example :

 buildTypes { // other stuff... release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' ext.enableCrashlytics = true // // IMPORTANT PART: // // tell your MultiDex to keep the classes you defined in your Proguard .pro file. multiDexKeepProguard file('proguard-rules.pro') } } 

In this case, you do not need to manually specify the multidex.keep file!

Additional information about multiDexKeepProguard here , and full developer documents from Google.

+2
source share

First check. SDK Fabric is added or not after that. If you get this error, check the files below.

 01-26 12:15:46.186 32094-32094/com.example.android I/SELinux﹕ Function: selinux_android_load_priority [0], There is no sepolicy file. 01-26 12:15:46.186 32094-32094/com.example.android I/SELinux﹕ SELinux: VERIFYSIG File Open Unsuccessful: 01-26 12:15:46.186 32094-32094/com.example.android I/SELinux﹕ Function: selinux_android_load_priority , spota verifySig or checkHash fails. priority version is VE=SEPF_GT-I9500_4.4.2_0018 01-26 12:15:46.186 32094-32094/com.example.android I/SELinux﹕ selinux_android_seapp_context_reload: seapp_contexts file is loaded from /seapp_contexts 01-26 12:15:46.191 32094-32094/com.example.android E/dalvikvm﹕ >>>>> Normal User 01-26 12:15:46.191 32094-32094/com.example.android E/dalvikvm﹕ >>>>> com.example.android [ userId:0 | appId:10288 ] 01-26 12:15:46.191 32094-32094/com.example.android D/dalvikvm﹕ Late-enabling CheckJNI 01-26 12:15:46.261 32094-32094/com.example.android E/dalvikvm﹕ Could not find class 'io.fabric.sdk.android.Kit[]', referenced from method com.example.android.ExampleApplication.onCreate 01-26 12:15:46.261 32094-32094/com.example.android W/dalvikvm﹕ VFY: unable to resolve new-array 10457 ([Lio/fabric/sdk/android/Kit;) in Lcom/example/android/ExampleApplication; 01-26 12:15:46.261 32094-32094/com.example.android D/dalvikvm﹕ VFY: replacing opcode 0x23 at 0x0007 01-26 12:15:46.261 32094-32094/com.example.android W/dalvikvm﹕ Unable to resolve superclass of Lcom/crashlytics/android/Crashlytics; (8949) 01-26 12:15:46.261 32094-32094/com.example.android W/dalvikvm﹕ Link of class 'Lcom/crashlytics/android/Crashlytics;' failed 01-26 12:15:46.261 32094-32094/com.example.android D/dalvikvm﹕ DexOpt: unable to opt direct call 0x3705 at 0x12 in Lcom/example/android/ExampleApplication;.onCreate 01-26 12:15:46.261 32094-32094/com.example.android I/MultiDex﹕ VM with version 1.6.0 does not have multidex support 01-26 12:15:46.261 32094-32094/com.example.android I/MultiDex﹕ install 01-26 12:15:46.261 32094-32094/com.example.android I/MultiDex﹕ MultiDexExtractor.load(/data/app/com.example.android-1.apk, false) 01-26 12:15:46.271 32094-32094/com.example.android I/MultiDex﹕ loading existing secondary dex files 01-26 12:15:46.271 32094-32094/com.example.android I/MultiDex﹕ load found 1 secondary dex files 01-26 12:15:46.276 32094-32094/com.example.android I/MultiDex﹕ install done 01-26 12:15:46.281 32094-32094/com.example.android I/PersonaManager﹕ getPersonaService() name persona_policy 01-26 12:15:46.291 32094-32094/com.example.android D/AndroidRuntime﹕ Shutting down VM 01-26 12:15:46.291 32094-32094/com.example.android W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x41887c08) 01-26 12:15:46.296 32094-32094/com.example.android E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.example.android, PID: 32094 java.lang.NoClassDefFoundError: io.fabric.sdk.android.Kit[] at com.example.android.ExampleApplication.onCreate(ExampleApplication.java:16) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1025) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4581) at android.app.ActivityThread.access$1600(ActivityThread.java:161) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1325) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:157) at android.app.ActivityThread.main(ActivityThread.java:5356) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081) at dalvik.system.NativeStart.main(Native Method) 01-26 12:15:52.016 32094-32094/com.example.android I/Process﹕ Sending signal. PID: 32094 SIG: 9 

build.gradle

  buildscript { repositories { maven { url 'https://maven.fabric.io/repo' } } dependencies { classpath 'io.fabric.tools:gradle:1.14.4' } } apply plugin: 'com.android.application' //Put Fabric plugin after Android plugin apply plugin: 'io.fabric' repositories { maven { url 'https://raw.github.com/beshkenadze/dozer/mvn-repo' } maven { url 'https://maven.fabric.io/repo' } } ... dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) ... // Crashlytics Kit compile('com.crashlytics.sdk.android:crashlytics:2.2.0@aar') { transitive = true } } afterEvaluate { tasks.matching { it.name.startsWith('dex') }.each { dx -> if (dx.additionalParameters == null) { dx.additionalParameters = [] } dx.additionalParameters += '--multi-dex' dx.additionalParameters += "--main-dex-list=$projectDir/multidex.keep".toString() } } 

ExampleApplication.java

  package com.example.android; import android.support.multidex.MultiDexApplication; import com.crashlytics.android.Crashlytics; import io.fabric.sdk.android.Fabric; public class ExampleApplication extends MultiDexApplication { private ExampleManager mManager; @Override public void onCreate() { super.onCreate(); Fabric.with(this, new Crashlytics()); mManager = ExampleManager.getInstance(); mManager.init(getApplicationContext()); } } 

multidex.keep

 android/support/multidex/BuildConfig.class android/support/multidex/MultiDex$V14.class android/support/multidex/MultiDex$V19.class android/support/multidex/MultiDex$V4.class android/support/multidex/MultiDex.class android/support/multidex/MultiDexApplication.class android/support/multidex/MultiDexExtractor$1.class android/support/multidex/MultiDexExtractor.class android/support/multidex/ZipUtil$CentralDirectory.class android/support/multidex/ZipUtil.class com/example/android/ExampleApplication.class 

progurad-rules.pro

 -dontoptimize -dontobfuscate #-optimizationpasses 5 -printusage unused.txt -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -keepattributes SourceFile,LineNumberTable -keepattributes *Annotation* -keepattributes InnerClasses #Project -keep public class com.example.android.** { *; } -dontwarn com.example.android.** -dontwarn com.example.android.db.** -keep public class com.example.android.db.** { *; } # JavascriptInterface Proguard RULES -keepclassmembers class * { @android.webkit.JavascriptInterface <methods>; } -keepattributes JavascriptInterface -keep public class com.example.android.ui.view.EditorView$EditorInterface -keep public class * implements com.example.android.ui.view.EditorView$EditorInterface -keepclassmembers class com.example.android.ui.view.EditorView$EditorInterface { <methods>; } # Libs #-libraryjars libs/AF-Android-SDK-v2.3.1.11.jar #-libraryjars libs/aws-android-sdk-1.7.1.1-core.jar #-libraryjars libs/aws-android-sdk-1.7.1.1-s3.jar #-libraryjars libs/FlurryAnalytics_3.3.3.jar #-libraryjars libs/Parse-1.4.3.jar #-libraryjars libs/google-play-services-STRIPPED.jar #-libraryjars ../bypass-library/libs/bypass.jar # Models -keep class com.example.android.api.data.** { *; } -keep class com.example.android.model.** { *; } # Bypass -keep class in.uncod.android.bypass.** { *; } # Butterknife -dontwarn butterknife.internal.** -keep class **$$ViewInjector { *; } -keepnames class * { @butterknife.InjectView *;} # Parse.com -dontwarn com.parse.FacebookAuthenticationProvider* -dontwarn com.parse.FacebookAuthenticationProvider -dontwarn com.parse.ParseFacebookUtils -dontwarn com.parse.** -keep class com.parse.** { *; } # AWS SDK for Android -keep class org.apache.commons.logging.** { *; } -keep class com.amazonaws.services.sqs.QueueUrlHandler { *; } -keep class com.amazonaws.javax.xml.transform.sax.* { public *; } -keep class com.amazonaws.javax.xml.stream.** { *; } -keep class com.amazonaws.services.**.model.*Exception* { *; } -keep class org.codehaus.** { *; } -keep class com.amazonaws.internal.config.** { *; } -keepattributes Signature,*Annotation* -dontwarn javax.xml.stream.events.** -dontwarn com.fasterxml.jackson.** -dontwarn org.apache.commons.logging.impl.** -dontwarn org.apache.http.conn.scheme.** -dontwarn com.amazonaws.AmazonWebServiceRequest -dontwarn com.amazonaws.ClientConfiguration -dontwarn com.amazonaws.DefaultRequest -dontwarn com.amazonaws.RequestClientOptions -dontwarn com.amazonaws.auth.** -dontwarn com.amazonaws.http.AmazonHttpClient -dontwarn com.amazonaws.http.ExecutionContext -dontwarn com.amazonaws.http.impl.** -dontwarn com.amazonaws.internal.config.HttpClientConfig -dontwarn com.amazonaws.internal.config.InternalConfig -dontwarn com.amazonaws.internal.config.SignerConfig -dontwarn com.amazonaws.metrics.ServiceLatencyProvider -dontwarn com.amazonaws.org.apache.http.** -dontwarn com.amazonaws.retry.RetryPolicy -dontwarn com.amazonaws.util.** -dontwarn com.amazonaws.org.joda.** -dontwarn com.amazonaws.javax.** -dontwarn org.apache.commons.** # Android -keep public class * extends android.app.Activity -keep public class * extends android.webkit.WebView -keep public class * extends android.app.Application -keep public class * extends android.app.Fragment -keep public class * extends android.app.ListActivity -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.ContentProvider -keepclasseswithmembers class * { native <methods>; } -keepclasseswithmembers class * { public <init>(android.content.Context, android.util.AttributeSet); } -keepclasseswithmembers class * { public <init>(android.content.Context, android.util.AttributeSet, int); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keepclassmembers class * { public void onClickUpdate(android.view.View); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } -keep class * extends java.util.ListResourceBundle { protected Object[][] getContents(); } # Google API -keep class com.google.** { *;} -keep interface com.google.** { *;} -dontwarn com.google.** -dontwarn sun.misc.Unsafe -dontwarn com.google.common.collect.MinMaxPriorityQueue -keepattributes *Annotation*,Signature -keep class * extends com.google.api.client.json.GenericJson { *; } -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; } # Squareup -dontwarn com.squareup.okhttp.** # Joda-Time -dontwarn org.joda.time.** # EventBus -keepclassmembers class ** { public void onEvent*(**); } # Annotation -keepattributes *Annotation* # Retrofit -keep class com.google.gson.** { *; } -keep class com.google.inject.** { *; } -keep class org.apache.http.** { *; } -keep class org.apache.james.mime4j.** { *; } -keep class javax.inject.** { *; } -keep class retrofit.** { *; } -keep class com.example.testobfuscation.** { *; } -keepattributes Signature -keep class sun.misc.Unsafe { *; } -dontwarn rx.** # Scribe oAuth -keep class org.scribe.** { *; } -keep class javax.xml.bind.DatatypeConverter -dontwarn javax.xml.bind.DatatypeConverter -dontwarn org.scribe.** #Roundview -dontwarn com.makeramen.** #android.support.v4 -dontwarn android.support.v4.** -keepclasseswithmembers class io.fabric.sdk.android.** { *; } -keep public class * extends io.fabric.sdk.android.Kit.** -keep class * implements io.fabric.sdk.android.KitGroup.** 
0
source share

All Articles