当前位置: 首页 > 面试题库 >

Fabric / Crashlytics NoClassDefFoundError仅在某些设备上

江育
2023-03-14
问题内容

我看到Google Play中与Fabric / Crashlytics相关的崩溃。从正常的Crashlytics更新到新的Fabric
Crashlytics之后,发生了这种情况。我只能在其中一台设备(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')
}

问题答案:

我只是凭直觉就知道了!升级到新的Fabric框架后,我最近不得不添加了对多dex的支持,而且我感觉也许我做得不好。因此,添加了这些其他更改后,现在它不再崩溃:

在我的build.gradle中,我添加了一个增量设置:

dexOptions {
        incremental true
        javaMaxHeapSize "4g"
    }

和一个额外的依赖:

compile 'com.android.support:multidex:'

在我的应用程序类上,我正在扩展MultiDexApplication:

public class TownsquareEvents extends android.support.multidex.MultiDexApplication


 类似资料:
  • 我的Android应用程序无法安装在一些“随机”、较旧的API设备上(任何低于API级别25的设备),错误如下: 所以,基本上看起来… API 我见过类似的问题,答案与小写的包名有关。我已经有了。 有人有什么想法吗? 舱单: BTW我用的是Visual Studio 2019和一夫一妻制3.7

  • 和onActivityResult 和错误的堆栈跟踪 stack_trace=java.lang.runtimeException:未能将结果ResultInfo{who=null,request=1,result=-1,data=intent{act=inline-data(havs extras)}}传递到活动{com.madhours/com.madhours.activities.acti

  • 最近,我们在Android应用程序中增加了对Chromecast的支持,但在对各种移动设备(手机和平板电脑)的扩展测试中,发现在许多移动设备上,Flipps应用程序都没有发现Chromecast。在相同的设备上,我们使用了最新版本的官方Chromecast SDK演示应用程序进行测试,该应用程序从https://github.com/googlecast/castvideo-Android下载(主

  • 问题内容: 我面临一个非常奇怪的问题。解析此字符串时,出现以下异常- 奇怪的是,发生此异常的设备是朋友的 Nexus 5 。但是,如果我在 Nexus 5 / 其他几个模拟器 上调试了相同的字符串,则可以正常工作。 这是我正在使用的代码。属于包。属于包 这是完整的堆栈跟踪。 问题答案: 设备默认语言环境中的am / pm符号可能会影响它,因此请尝试使用以下语言环境来解析日期,这将对您有所帮助。

  • 我正试图在后台获取用户位置。在我的手机(htc one m7)上一切都很好,但出于某种原因,它不能在我测试的两个设备上工作:三星galaxy s3索尼Xperia Z1 顺便说一句:我把所有东西都添加到了清单中。

  • 问题内容: 我正在尝试获取文件的大小,然后再下载。我曾经这样做,它在我的家用计算机Android 2.1 Emulator上运行良好。 但是,一旦我从手机(WiFi或3G)运行我的应用程序,该功能将无法使用,而当我从工作笔记本电脑的Android 2.1仿真器中运行该应用程序时,它也将无法使用。 有谁知道解决方法?还有另一种方法可以获取文件的大小,而无需使用。 问题答案: 此信息并非始终可用。通常