Tôi hiện đang phát triển một ứng dụng Android bằng Android Studio. Hiện tại, ứng dụng đang khởi chạy hoàn hảo trên các thiết bị Lollipop, nhưng gặp sự cố khi khởi chạy do một thiết bị pre-lollipop ClassNotFoundException
(tôi đã thử nghiệm trên ICS và không thành công).Android: thư viện tải ứng dụng khi chạy trên Lollipop nhưng không phải là IceCreamSandwich
Lớp bị thiếu luôn xuất phát từ thư mục librairies bên ngoài khi chạy.
Dưới đây là file gradle:
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'
}
Đây là một shunk sản lượng logcat:
> 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
Tôi hiện đang ra khỏi giải pháp cho bây giờ. Bất kỳ đầu mối về điều đó sẽ được đánh giá cao.
Xin cảm ơn, Trân trọng.
Thêm đầu ra của ngoại lệ cho câu hỏi của bạn. – Breavyn
Sự cố gần như chắc chắn là do sử dụng multidex trong ứng dụng của bạn. Bất cứ lớp nào không được tìm thấy có nhiều khả năng được truy cập trước khi attachBaseContext được gọi trong ứng dụng của bạn và các dexes phụ được nạp. Bạn đã làm theo ví dụ multidex và đảm bảo rằng nó đang được khởi tạo trong lớp Ứng dụng của bạn? –
Đăng logcat với classnotdeffoundexception –