Ich entwickle derzeit eine Android-App mit Android Studio. Derzeit startet die App perfekt auf Lollipop-Geräten, stürzt aber beim Start aufgrund eines ClassNotFoundException
auf Pre-Lollipop-Geräten (ich habe auf ICS getestet und es scheitern).Android: App lädt Bibliothek zur Laufzeit auf Lollipop, aber nicht IceCreamsandwich
Die fehlende Klasse stammt immer aus einer externen Bibliothek zur Laufzeit.
Hier ist die gradle Datei:
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'
android {
compileSdkVersion 23
buildToolsVersion '23.0.0'
defaultConfig {
applicationId 'com.kappsports.kapp10'
minSdkVersion 18
targetSdkVersion 23
versionCode 1
versionName '1.0.0'
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
shrinkResources true
}
}
lintOptions {
abortOnError false
}
dexOptions {
incremental true
javaMaxHeapSize '4g'
}
}
repositories {
mavenCentral()
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
maven { url 'https://maven.fabric.io/public' }
jcenter()
}
dependencies {
compile fileTree(dir: 'libs', exclude: 'android-support-v4.jar', include: '*.jar')
compile('com.crashlytics.sdk.android:crashlytics:[email protected]') {
transitive = true;
}
compile 'com.michaelpardo:activeandroid:3.1.0-SNAPSHOT'
compile 'com.github.johnpersano:supertoasts:[email protected]'
compile 'com.google.code.gson:gson:2.3'
compile 'com.squareup:otto:1.3.5'
compile 'com.makeramen:roundedimageview:1.3.0'
compile 'com.jakewharton:butterknife:6.0.0'
compile 'com.malinskiy:superrecyclerview:1.0.0'
compile 'com.android.support:multidex:1.0.1'
compile 'com.jpardogo.materialtabstrip:library:1.0.9'
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3'
compile 'com.squareup.okhttp:okhttp:2.4.0'
compile 'org.buraktamturk:loadingview:[email protected]'
compile 'com.facebook.android:facebook-android-sdk:4.1.0'
compile 'com.github.navasmdc:MaterialDesign:[email protected]'
compile 'net.danlew:android.joda:2.8.2'
//noinspection GradleCompatible
compile 'com.android.support:appcompat-v7:22.2.1'
compile 'com.google.android.gms:play-services:7.5.0'
//noinspection GradleCompatible
compile 'com.android.support:recyclerview-v7:22.2.1'
}
Hier ist ein shunk von logcat Ausgabe:
> 09-06 23:25:58.414 27436-27436/? W/dalvikvm﹕ Link of class
> 'Lio/fabric/sdk/android/InitializationTask;' failed 09-06 23:25:58.414
> 27436-27436/? E/dalvikvm﹕ Could not find class
> 'io.fabric.sdk.android.InitializationTask', referenced from method
> io.fabric.sdk.android.Kit.<init> 09-06 23:25:58.414 27436-27436/?
> W/dalvikvm﹕ VFY: unable to resolve new-instance 8228
> (Lio/fabric/sdk/android/InitializationTask;) in
> Lio/fabric/sdk/android/Kit; 09-06 23:25:58.414 27436-27436/?
> D/dalvikvm﹕ VFY: replacing opcode 0x22 at 0x0003 09-06 23:25:58.414
> 27436-27436/? W/dalvikvm﹕ Unable to resolve superclass of
> Lio/fabric/sdk/android/InitializationTask; (8269) 09-06 23:25:58.414
> 27436-27436/? W/dalvikvm﹕ Link of class
> 'Lio/fabric/sdk/android/InitializationTask;' failed 09-06 23:25:58.414
> 27436-27436/? W/dalvikvm﹕ Unable to resolve superclass of
> Lio/fabric/sdk/android/InitializationTask; (8269) 09-06 23:25:58.414
> 27436-27436/? W/dalvikvm﹕ Link of class
> 'Lio/fabric/sdk/android/InitializationTask;' failed 09-06 23:25:58.414
> 27436-27436/? I/dalvikvm﹕ Could not find method
> io.fabric.sdk.android.InitializationTask.getDependencies, referenced
> from method io.fabric.sdk.android.Kit.getDependencies 09-06
> 23:25:58.414 27436-27436/? W/dalvikvm﹕ VFY: unable to resolve virtual
> method 57413:
> Lio/fabric/sdk/android/InitializationTask;.getDependencies
>()Ljava/util/Collection; 09-06 23:25:58.414 27436-27436/? D/dalvikvm﹕
> VFY: replacing opcode 0x6e at 0x0002 09-06 23:25:58.414 27436-27436/?
> W/dalvikvm﹕ VFY: unable to find class referenced in signature
> (Lio/fabric/sdk/android/services/common/IdManager;) 09-06 23:25:58.414
> 27436-27436/? W/dalvikvm﹕ Unable to resolve superclass of
> Lio/fabric/sdk/android/InitializationTask; (8269) 09-06 23:25:58.414
> 27436-27436/? W/dalvikvm﹕ Link of class
> 'Lio/fabric/sdk/android/InitializationTask;' failed 09-06 23:25:58.414
> 27436-27436/? W/dalvikvm﹕ Unable to resolve superclass of
> Lio/fabric/sdk/android/InitializationTask; (8269) 09-06 23:25:58.414
> 27436-27436/? W/dalvikvm﹕ Link of class
> 'Lio/fabric/sdk/android/InitializationTask;' failed 09-06 23:25:58.414
> 27436-27436/? I/dalvikvm﹕ Could not find method
> io.fabric.sdk.android.InitializationTask.executeOnExecutor, referenced
> from method io.fabric.sdk.android.Kit.initialize 09-06 23:25:58.414
> 27436-27436/? W/dalvikvm﹕ VFY: unable to resolve virtual method 57412:
> Lio/fabric/sdk/android/InitializationTask;.executeOnExecutor
> (Ljava/util/concurrent/ExecutorService;[Ljava/lang/Object;)V 09-06
> 23:25:58.414 27436-27436/? D/dalvikvm﹕ VFY: replacing opcode 0x6e at
> 0x0011 09-06 23:25:58.414 27436-27436/? W/dalvikvm﹕ VFY: unable to
> find class referenced in signature
> (Lio/fabric/sdk/android/services/common/IdManager;) 09-06 23:25:58.419
> 27436-27436/? W/dalvikvm﹕ Unable to resolve superclass of
> Lio/fabric/sdk/android/InitializationTask; (8269) 09-06 23:25:58.419
> 27436-27436/? W/dalvikvm﹕ Link of class
> 'Lio/fabric/sdk/android/InitializationTask;' failed 09-06 23:25:58.419
> 27436-27436/? D/dalvikvm﹕ DexOpt: unable to opt direct call 0xe03e at
> 0x05 in Lio/fabric/sdk/android/Kit;.<init> 09-06 23:25:58.419
> 27436-27436/? D/AndroidRuntime﹕ Shutting down VM 09-06 23:25:58.419
> 27436-27436/? W/dalvikvm﹕ threadid=1: thread exiting with uncaught
> exception (group=0x41bfb700) 09-06 23:25:58.419 27436-27436/?
> E/AndroidRuntime﹕ FATAL EXCEPTION: main
> java.lang.NoClassDefFoundError: io.fabric.sdk.android.services.common.ExecutorUtils
> at com.crashlytics.android.core.CrashlyticsCore.<init>(CrashlyticsCore.java:205)
> at com.crashlytics.android.core.CrashlyticsCore$Builder.build(CrashlyticsCore.java:189)
> at com.kappsports.kapp10.Kapp10Application.onCreate(Kapp10Application.java:53)
> at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1024)
> at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4684)
> at android.app.ActivityThread.access$1400(ActivityThread.java:159)
> at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1376)
> at android.os.Handler.dispatchMessage(Handler.java:99)
> at android.os.Looper.loop(Looper.java:176)
> at android.app.ActivityThread.main(ActivityThread.java:5419)
> at java.lang.reflect.Method.invokeNative(Native Method)
> at java.lang.reflect.Method.invoke(Method.java:525)
> at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
> at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
> at dalvik.system.NativeStart.main(Native Method) 09-06 23:25:58.424 2346-2891/? I/ActivityManager﹕ Notify an
> ApplicationCrash
ich derzeit für jetzt aus der Lösung bin. Jeder Hinweis darauf würde geschätzt werden.
Danke, Grüße.
Fügen Sie die Ausgabe der Ausnahme zu Ihrer Frage hinzu. – Breavyn
Der Absturz ist fast sicher durch die Verwendung von Multidex in Ihrer Anwendung. Auf welche Klasse auch immer nicht gefunden wird, es wird höchstwahrscheinlich darauf zugegriffen, bevor attachBaseContext in Ihrer Anwendung aufgerufen wurde und die sekundären Dexes geladen wurden. Haben Sie das multidex-Beispiel verfolgt und sichergestellt, dass es in Ihrer Application-Klasse initialisiert wird? –
Veröffentlichen Sie die Logcat mit der Classnotdeffoundexception –