Android错误随机java.lang.NoClassDefFoundError:com.facebook.internal.Utility

弗兰·马尔(Fran March):

我正在使用最新的Facebook Android SDK,并在最新发布的apk中从远程崩溃控制应用程序中的数十个用户中获取了该错误。我在这里查找了此类错误,但是对于最后一个FB SDK而言,大多数答案都已经过时了,在这种情况下,有两种奇怪的情况:

a)错误似乎是随机发生的。我一直无法在任何设备上重现它。

b)在该发行版和上一个发行版之间,FB逻辑根本没有任何变化,在以前的发行版中,我从未发生过这样的错误。

由于我找不到这些版本之间代码的任何相关差异,因此我认为问题是在生成最后一个apk时Android Tools可能发生了一些错误,但事实是,我使用的apk与一直无法重现该问题,尽管有数十个用户受到影响,但数百个使用相同apk的用户却没有受到影响,我也放弃了这种假设。

欢迎提供有关如何解决或调试此问题的任何想法。

可能相关的更多信息:

  • 所有崩溃都发生在Android 4.0.3或更早版本中。发生率最高的是2.3.6,占所有崩溃的48%。
  • 该类实际上是在APK中导出的我已经通过解压缩apk并使用dexdump来查看classes.dex中的内容进行了检查。我没想到会发生其他事情,因为它在我的所有设备上都能正常工作,如果没有该类,它就不会。

    $〜/ android-sdks / build-tools / 21.1.1 / dexdump classes.dex | grep'com.facebook.internal.Utility $ 1'类描述符:'Lcom / facebook / internal / Utility $ 1;' #0:(在Lcom / facebook / internal / Utility $ 1;)#1:(在Lcom / facebook / internal / Utility $ 1;)#2:(在Lcom / facebook / internal / Utility $ 1;)#0:(在Lcom / facebook / internal / Utility $ 1;)#0:(在Lcom / facebook / internal / Utility $ 1;)#1:(在Lcom / facebook / internal / Utility $ 1;)#2:(在Lcom / facebook / internal / Utility $ 1;)#3:(在Lcom / facebook / internal / Utility $ 1;)

  • 从loadAppSettingsAsync调用实用程序的静态方法后,它似乎失败,而该方法恰好是同一类中的静态方法因此,如果com.facebook.internal.Utility类不存在或无法加载,怎么可能首先执行com.facebook.internal.Utility.loadAppSettingsAsync?并且如果存在并且已加载,为什么在com.facebook.internal.Utility上引发NoClassDefFoundError?我真是迷路了...

在这里,来自splunk mint(以前称为bugsense)的堆栈,我只是更改了应用程序的名称。我使用proguard映射文件对其进行了追溯,但无论如何它似乎错过了一些行号:

java.lang.NoClassDefFoundError: com.facebook.internal.Utility$1
    at com.facebook.internal.Utility.void loadAppSettingsAsync(android.content.Context,java.lang.String)(Unknown Source)
    at com.facebook.Settings.void sdkInitialize(android.content.Context)(Unknown Source)
    at com.facebook.UiLifecycleHelper.<init>(Unknown Source)
    at net.iberdroid.androidgames.framework.impl.AndroidGame.void onCreate(android.os.Bundle)(Unknown Source)
    at com.marzoa.ruletafree.xmas2012.RuletaAfortunadaGame.void onCreate(android.os.Bundle)(Unknown Source)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1050)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1623)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1675)
    at android.app.ActivityThread.access$1500(ActivityThread.java:121)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:943)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:130)
    at android.app.ActivityThread.main(ActivityThread.java:3770)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:507)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:670)
    at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: com.facebook.internal.Utility$1 in loader dalvik.system.PathClassLoader[/data/app/com.marzoa.ruletafree.xmas2012-2.apk]
    at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
    ... 18 more
你做 :

由于NoClassDefFoundError发生在AsyncTask的匿名实现的loadAppSettingsAsync中,因此似乎是类似的问题,例如NoClassDefFoundError-Android 2.3.X

它是Google Play服务中的错误。https://code.google.com/p/android/issues/detail?id=81083

尝试Application#onCreate()按照参考问题的答案中所述,在您的方法中添加以下内容

try {
    Class.forName("android.os.AsyncTask");
}
catch(Throwable ignore) {
    // ignored
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Cordova CLI 构建 gradle 错误:java.lang.NoClassDefFoundError:com/android/build/gradle/internal/ToolingRegistryProvider

java.lang.NoClassDefFoundError:com.google.android.gms.common.internal.zzbp

java.lang.NoClassDefFoundError:com.google.android.gms.internal.zzmp

java.lang.NoClassDefFoundError:com.google.android.gms.common.internal.zzd

Maven:java.lang.NoClassDefFoundError:com / google / inject / internal / cglib / core / $ CodeGenerationException

NoClassDefFoundError:com / android / build / gradle / internal / ToolingRegistryProvider

java.lang.NoClassDefFoundError: io/restassured/internal/common/assertion/AssertParameter

Hibernate引发java.lang.NoClassDefFoundError:org / hibernate / internal / CoreMessageLogger

java.lang.NoClassDefFoundError: com.google.android.gms.R$string at com.google.android.gms.common.internal.zzam.<init> (Unknown Source)

java.lang.NoClassDefFoundError:无法解决以下问题:Lcom / google / android / gms / common / internal / zzbo;

致命异常:主要java.lang.NoClassDefFoundError:android.support.v7.internal.widget.TintManager

java.lang.NoClassDefFoundError:无法解决以下问题:Lcom / google / android / gms / common / internal / zzbp

Android GoogleAPIClient-NoClassDefFoundError:com / google / android / gms / internal / zzsa

java.lang.NoClassDefFoundError:com.google.android.maps.GeoPoint

java.lang.NoSuchMethodError:com.squareup.okhttp.internal.Internal.callEngineGetConnection

IBM MQ Java 错误 :: java.lang.ClassNotFoundException: com.ibm.mq.internal.MQCommonServices

将android Facebook SDK添加到项目后,java.lang.NoClassDefFoundError和ClassNotFoundException

Tomcat启动期间发生错误-com.google.inject.internal.util。$ ComputationException:java.lang.ArrayIndexOutOfBoundsException

oozie spark 2.0操作给出异常:java.lang.NoClassDefFoundError:org / apache / spark / internal / Logging

类型[未知]不存在原因:java.lang.NoClassDefFoundError:org / junit / internal / runners / TestClassRunner

PowerMockito无法正常工作:-java.lang.NoClassDefFoundError:org / mockito / internal / creation / CglibMockMaker

java.lang.NoClassDefFoundError:无法解决以下问题:Lio / realm / internal / SharedRealm $ Durability

在运行时加载jar文件java.lang.NoClassDefFoundError:kotlin / jvm / internal / markers / KMappedMarker

React Native:java.lang.NoClassDefFoundError:解析失败:Lcom/google/firebase/auth/internal/InternalAuthProvider

更新到支持工具后,再次获取java.lang.NoClassDefFoundError:android.support.v7.internal.view.menu.i

java.lang.NoClassDefFoundError:无法解决以下问题:Lcom / google / android / gms / auth / api / signin / internal / zzz;

获取“ java.lang.NoClassDefFoundError:com / beust / jcommander / ParameterException”异常

java.lang.NoClassDefFoundError:com.google.ads.AdView

java.lang.NoClassDefFoundError: com/fasterxml/jackson/annotation/JsonInclude$Value