android - 使用 Parse.com 登录 Facebook 时出现 NoClassDefFoundError

标签 android facebook parse-platform

我目前使用 parse.com 作为我的 Android 应用程序的后端解决方案。我正在尝试使用 Facebook 对用户进行身份验证,但目前遇到以下错误。我试图将两个 JARS(Parse 和 Facebook)添加到我的项目中。我也多次清理了我的项目,但仍然出现以下错误:

错误日志:

03-03 15:01:18.273: E/dalvikvm(7423): Could not find class 'com.facebook.SharedPreferencesTokenCachingStrategy', referenced from method com.parse.auth.FacebookAuthenticationProvider.authenticate
03-03 15:01:18.273: W/dalvikvm(7423): VFY: unable to resolve new-instance 1011 (Lcom/facebook/SharedPreferencesTokenCachingStrategy;) in Lcom/parse/auth/FacebookAuthenticationProvider;
03-03 15:01:18.277: D/dalvikvm(7423): VFY: replacing opcode 0x22 at 0x0033
03-03 15:01:18.277: E/dalvikvm(7423): Could not find class 'com.facebook.SharedPreferencesTokenCachingStrategy', referenced from method com.parse.auth.FacebookAuthenticationProvider.restoreAuthentication
03-03 15:01:18.277: W/dalvikvm(7423): VFY: unable to resolve new-instance 1011 (Lcom/facebook/SharedPreferencesTokenCachingStrategy;) in Lcom/parse/auth/FacebookAuthenticationProvider;
03-03 15:01:18.277: D/dalvikvm(7423): VFY: replacing opcode 0x22 at 0x003b
03-03 15:01:18.277: D/dalvikvm(7423): DexOpt: unable to opt direct call 0x21d7 at 0x35 in Lcom/parse/auth/FacebookAuthenticationProvider;.authenticate
03-03 15:01:18.281: D/dalvikvm(7423): DexOpt: unable to opt direct call 0x21d7 at 0x3f in Lcom/parse/auth/FacebookAuthenticationProvider;.restoreAuthentication
03-03 15:01:18.324: D/AndroidRuntime(7423): Shutting down VM
03-03 15:01:18.328: W/dalvikvm(7423): threadid=1: thread exiting with uncaught exception (group=0x40dc6300)
03-03 15:01:18.371: E/AndroidRuntime(7423): FATAL EXCEPTION: main
03-03 15:01:18.371: E/AndroidRuntime(7423): java.lang.NoClassDefFoundError: com.facebook.SharedPreferencesTokenCachingStrategy
03-03 15:01:18.371: E/AndroidRuntime(7423):     at com.parse.auth.FacebookAuthenticationProvider.authenticate(FacebookAuthenticationProvider.java:114)
03-03 15:01:18.371: E/AndroidRuntime(7423):     at com.parse.ParseUser.authenticateAsync(ParseUser.java:1096)
03-03 15:01:18.371: E/AndroidRuntime(7423):     at com.parse.ParseUser.logInWithAsync(ParseUser.java:1113)
03-03 15:01:18.371: E/AndroidRuntime(7423):     at com.parse.ParseUser.logInWithAsync(ParseUser.java:938)
03-03 15:01:18.371: E/AndroidRuntime(7423):     at com.parse.ParseFacebookUtils.logIn(ParseFacebookUtils.java:338)
03-03 15:01:18.371: E/AndroidRuntime(7423):     at com.parse.ParseFacebookUtils.logIn(ParseFacebookUtils.java:363)
03-03 15:01:18.371: E/AndroidRuntime(7423):     at com.example.chartviewer.FbLoginActivity.onCreate(FbLoginActivity.java:44)
03-03 15:01:18.371: E/AndroidRuntime(7423):     at android.app.Activity.performCreate(Activity.java:5008)
03-03 15:01:18.371: E/AndroidRuntime(7423):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
03-03 15:01:18.371: E/AndroidRuntime(7423):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
03-03 15:01:18.371: E/AndroidRuntime(7423):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
03-03 15:01:18.371: E/AndroidRuntime(7423):     at android.app.ActivityThread.access$600(ActivityThread.java:130)
03-03 15:01:18.371: E/AndroidRuntime(7423):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
03-03 15:01:18.371: E/AndroidRuntime(7423):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-03 15:01:18.371: E/AndroidRuntime(7423):     at android.os.Looper.loop(Looper.java:137)
03-03 15:01:18.371: E/AndroidRuntime(7423):     at android.app.ActivityThread.main(ActivityThread.java:4745)
03-03 15:01:18.371: E/AndroidRuntime(7423):     at java.lang.reflect.Method.invokeNative(Native Method)
03-03 15:01:18.371: E/AndroidRuntime(7423):     at java.lang.reflect.Method.invoke(Method.java:511)
03-03 15:01:18.371: E/AndroidRuntime(7423):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
03-03 15:01:18.371: E/AndroidRuntime(7423):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
03-03 15:01:18.371: E/AndroidRuntime(7423):     at dalvik.system.NativeStart.main(Native Method)

添加 Jar 后的新错误日志:

03-03 15:15:09.472: E/AndroidRuntime(8203): FATAL EXCEPTION: main
03-03 15:15:09.472: E/AndroidRuntime(8203): java.lang.NoClassDefFoundError: com.facebook.SharedPreferencesTokenCachingStrategy
03-03 15:15:09.472: E/AndroidRuntime(8203):     at com.parse.auth.FacebookAuthenticationProvider.authenticate(FacebookAuthenticationProvider.java:114)
03-03 15:15:09.472: E/AndroidRuntime(8203):     at com.parse.ParseUser.authenticateAsync(ParseUser.java:1096)
03-03 15:15:09.472: E/AndroidRuntime(8203):     at com.parse.ParseUser.logInWithAsync(ParseUser.java:1113)
03-03 15:15:09.472: E/AndroidRuntime(8203):     at com.parse.ParseUser.logInWithAsync(ParseUser.java:938)
03-03 15:15:09.472: E/AndroidRuntime(8203):     at com.parse.ParseFacebookUtils.logIn(ParseFacebookUtils.java:338)
03-03 15:15:09.472: E/AndroidRuntime(8203):     at com.parse.ParseFacebookUtils.logIn(ParseFacebookUtils.java:363)
03-03 15:15:09.472: E/AndroidRuntime(8203):     at com.example.chartviewer.FbLoginActivity.onCreate(FbLoginActivity.java:44)
03-03 15:15:09.472: E/AndroidRuntime(8203):     at android.app.Activity.performCreate(Activity.java:5008)
03-03 15:15:09.472: E/AndroidRuntime(8203):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
03-03 15:15:09.472: E/AndroidRuntime(8203):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
03-03 15:15:09.472: E/AndroidRuntime(8203):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
03-03 15:15:09.472: E/AndroidRuntime(8203):     at android.app.ActivityThread.access$600(ActivityThread.java:130)
03-03 15:15:09.472: E/AndroidRuntime(8203):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
03-03 15:15:09.472: E/AndroidRuntime(8203):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-03 15:15:09.472: E/AndroidRuntime(8203):     at android.os.Looper.loop(Looper.java:137)
03-03 15:15:09.472: E/AndroidRuntime(8203):     at android.app.ActivityThread.main(ActivityThread.java:4745)
03-03 15:15:09.472: E/AndroidRuntime(8203):     at java.lang.reflect.Method.invokeNative(Native Method)
03-03 15:15:09.472: E/AndroidRuntime(8203):     at java.lang.reflect.Method.invoke(Method.java:511)
03-03 15:15:09.472: E/AndroidRuntime(8203):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
03-03 15:15:09.472: E/AndroidRuntime(8203):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
03-03 15:15:09.472: E/AndroidRuntime(8203):     at dalvik.system.NativeStart.main(Native Method)

最佳答案

确保选中 Java Build Path -> Order and Export-tab 中的复选框。

enter image description here (图片来自here)

关于android - 使用 Parse.com 登录 Facebook 时出现 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15187018/

相关文章:

android - EditText 光标在 Android 3.0 中不可见

android - 从 List<String[]> 填充 ListView

javascript - Safari 上的 Facebook 应用程序 iframe 登录问题

ios - 从解析中删除对象的问题

ios - PFObject 无法转换

Android 加速度计累积

java - InterruptedIOException 使用 httpClient 4.3.3 for Android

facebook - 在 Rails 中使用 Facebook api 时无法将路径名转换为字符串

android - 如何在我的 android 应用程序中显示 facebook 在线好友?

javascript - 格式日期为 "yyyy-MM-dd' T'HH :mm:ss. SSS'Z'"