我正在使用最新的Facebook Android SDK,在我的最新发布的apk中,远程崩溃控制应用程序中有数十个用户报告了该错误。我在这里查找了此类错误,但大多数答案对于最新的FB SDK来说都过时了,在这种情况下,有两个奇怪的情况:
a)错误似乎是随机发生的。我无法在任何设备上重现它。
b)在该版本和上一版本之间,FB逻辑没有任何变化,并且在以前的版本中,我从未遇到过这样的错误。
由于我无法在这些版本之间找到任何相关的代码区别,我认为问题可能是在生成最后一个apk时Android工具出了问题,但考虑到我正在使用的完全相同的apk,而且尽管有数十个用户受到影响,但使用相同apk的数百个用户没有受到影响,所以我也排除了这种假设。
欢迎提出任何解决或调试此问题的想法。
更多可能相关的信息:
- 所有崩溃都发生在Android 4.0.3或更早版本中。48%的崩溃发生在2.3.6上。 - 该类实际上在APK中被导出。我通过解压apk并使用dexdump来查看classes.dex中的内容进行了检查。我不会期望其他事情,因为它在我的所有设备上都可以完美地工作,如果该类不存在,则无法工作。 - 它似乎是在loadAppSettingsAsync调用Utility的静态方法后失败的,后者恰好是同一类中的一个静态方法。因此,如果com.facebook.internal.Utility类不存在或无法加载,那么如何可能在第一次执行com.facebook.internal.Utility.loadAppSettingsAsync时呢?如果它存在并已加载,为什么会抛出NoClassDefFoundError com.facebook.internal.Utility?我* 有点迷失......
这里是Splunk Mint(以前被称为bugsense)的堆栈,我只更改了应用程序的名称。我使用proguard映射文件重新跟踪了它,但似乎还是错过了一些行号:
a)错误似乎是随机发生的。我无法在任何设备上重现它。
b)在该版本和上一版本之间,FB逻辑没有任何变化,并且在以前的版本中,我从未遇到过这样的错误。
由于我无法在这些版本之间找到任何相关的代码区别,我认为问题可能是在生成最后一个apk时Android工具出了问题,但考虑到我正在使用的完全相同的apk,而且尽管有数十个用户受到影响,但使用相同apk的数百个用户没有受到影响,所以我也排除了这种假设。
欢迎提出任何解决或调试此问题的想法。
更多可能相关的信息:
- 所有崩溃都发生在Android 4.0.3或更早版本中。48%的崩溃发生在2.3.6上。 - 该类实际上在APK中被导出。我通过解压apk并使用dexdump来查看classes.dex中的内容进行了检查。我不会期望其他事情,因为它在我的所有设备上都可以完美地工作,如果该类不存在,则无法工作。 - 它似乎是在loadAppSettingsAsync调用Utility的静态方法后失败的,后者恰好是同一类中的一个静态方法。因此,如果com.facebook.internal.Utility类不存在或无法加载,那么如何可能在第一次执行com.facebook.internal.Utility.loadAppSettingsAsync时呢?如果它存在并已加载,为什么会抛出NoClassDefFoundError com.facebook.internal.Utility?我* 有点迷失......
这里是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