Fabric/Crashlyticsに関連するGooglePlayのクラッシュが発生しています。これは、通常のCrashlyticsから新しいFabricCrashlyticsに更新した後に発生しました。自分のデバイスの1つ(Galaxy S2)でしか再現できません。私が持っている他のすべてのデバイス(Nexus 5とS4)にはクラッシュがありません。スタックトレースは次のとおりです。
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)
そして、これが私の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')
}
私はそれを直感で理解しました!最近、新しいファブリックフレームワークにアップグレードした後、マルチデックスサポートを追加する必要がありましたが、正しく実行できなかったのではないかと感じました。したがって、これらの追加の変更を追加した後、クラッシュしなくなりました。
Build.gradleで、増分設定を追加しました。
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
および追加の依存関係:
compile 'com.Android.support:multidex:'
私のアプリケーションクラスでは、MultiDexApplicationを拡張しています。
public class TownsquareEvents extends Android.support.multidex.MultiDexApplication
これをビルドしてください:コンパイル 'com.Android.support:multidex:1.0.1'
そして、このメソッドをアプリケーションクラスに追加します。
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
2年後の追加情報:問題はAndroid <5を実行しているデバイスでのみ発生するようです(それが誰かがクラッシュの検索を絞り込むのに役立つ場合...)
MultiDex
を正しく使用していて、それでもこのエラーが発生する場合は、Proguard
を使用していて、MultiDex
が保持するクラスを認識していないことが原因である可能性があります。
したがって、必ずMultiDex
キープファイルをProguard
.pro
ファイルと「同期」してください。
例:
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')
}
}
これにより、multidex.keep
ファイルを手動で指定する必要がなくなります。
multiDexKeepProguard
ここ 、および 完全な開発者向けドキュメント に関する詳細はGoogleから。
Crashlyticsを2.9.1に更新して、このバグを修正しようとしています。 https://docs.fabric.io/Android/changelog.html#february-28-2018 によると:
Firebase Coreが依存関係として明示的に含まれていない場合に、FirebaseCrashlyticsの起動に失敗するバグを修正しました。
ぼくの build.gradle
今読む:
implementation('com.crashlytics.sdk.Android:crashlytics:2.9.1@aar') {
transitive = true;
}
編集:助けにはならなかった。 On Android 4.xCrashlyticsがクラッシュします。皮肉なことです。
最初にFabricSDKが追加されているかどうかを確認してから、このエラーが発生した場合は以下のファイルを確認してください。
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.**