Android - facebook sdk 中没有这样的字段错误
Posted
技术标签:
【中文标题】Android - facebook sdk 中没有这样的字段错误【英文标题】:Android - No such field error in facebook sdk 【发布时间】:2015-08-31 13:20:44 【问题描述】:我正在尝试将 Facebook SDK 集成到我的 android 应用程序中。我下载了facebook-android-sdk-4.5.1
并按照开发者指南中的步骤进行操作。当我尝试运行 SDK 的示例文件夹中的示例 HelloFacebookSample
时,我收到以下错误:
08-31 18:37:19.399: E/AndroidRuntime(277): FATAL EXCEPTION: main
08-31 18:37:19.399: E/AndroidRuntime(277): java.lang.NoSuchFieldError: java.util.Locale.ROOT
08-31 18:37:19.399: E/AndroidRuntime(277): at com.facebook.FacebookSdk.loadDefaultsFromMetadata(FacebookSdk.java:623)
08-31 18:37:19.399: E/AndroidRuntime(277): at com.facebook.FacebookSdk.sdkInitialize(FacebookSdk.java:203)
08-31 18:37:19.399: E/AndroidRuntime(277): at com.facebook.FacebookSdk.sdkInitialize(FacebookSdk.java:173)
08-31 18:37:19.399: E/AndroidRuntime(277): at com.example.image.HelloFacebookSampleActivity.onCreate(HelloFacebookSampleActivity.java:117)
08-31 18:37:19.399: E/AndroidRuntime(277): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
08-31 18:37:19.399: E/AndroidRuntime(277): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
08-31 18:37:19.399: E/AndroidRuntime(277): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
08-31 18:37:19.399: E/AndroidRuntime(277): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
08-31 18:37:19.399: E/AndroidRuntime(277): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
08-31 18:37:19.399: E/AndroidRuntime(277): at android.os.Handler.dispatchMessage(Handler.java:99)
08-31 18:37:19.399: E/AndroidRuntime(277): at android.os.Looper.loop(Looper.java:123)
08-31 18:37:19.399: E/AndroidRuntime(277): at android.app.ActivityThread.main(ActivityThread.java:4627)
08-31 18:37:19.399: E/AndroidRuntime(277): at java.lang.reflect.Method.invokeNative(Native Method)
08-31 18:37:19.399: E/AndroidRuntime(277): at java.lang.reflect.Method.invoke(Method.java:521)
08-31 18:37:19.399: E/AndroidRuntime(277): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
08-31 18:37:19.399: E/AndroidRuntime(277): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
08-31 18:37:19.399: E/AndroidRuntime(277): at dalvik.system.NativeStart.main(Native Method)
我正在尝试 Android 2.2。这是一个问题吗?或者我错过了什么?有人可以指导我吗。
【问题讨论】:
您尝试过不同的设备(操作系统版本)吗?也许使用genymotion?如果这总是可重现的,那么您的 IDE 和/或环境可能存在问题 【参考方案1】:Facebook SDK 需要最低 Android API 版本 15(Android 4.0.3 或 ICE CREAM SANDWICH)。
https://developers.facebook.com/docs/android
【讨论】:
我的回答有什么问题?这是事实,甚至有证实这一事实的参考资料支持。 您的回答没有问题。可能有人只是懒得仔细阅读问题并看到 OP 使用 Android 2.2(API 级别 8),而 FB SDK 需要 API 15,正如您所指出的那样。【参考方案2】:我正在尝试 Android 2.2。这是一个问题吗?
是的,因为 FB 4.5.1 SDK 需要 API 9 才能运行(即 Android 2.3)。你可以在这里查看:https://web.archive.org/web/20150821025823/https://developers.facebook.com/docs/android
需要 Android API 9。
它无法在以前的 Android 版本上运行,因为它使用新的 API 方法/字段(在您的情况下,异常是由访问仅在 API 9 中添加的 Locale.ROOT
常量引起的)。
从版本 4.6.0 开始,FB SDK 开始需要 API 15: https://developers.facebook.com/docs/android/upgrading-4.x
【讨论】:
以上是关于Android - facebook sdk 中没有这样的字段错误的主要内容,如果未能解决你的问题,请参考以下文章
通过 Xamarin.Facebook.Android sdk 登录 Facebook
Android - 使用 facebook sdk 在 facebook 墙上发帖的问题
Android:在eclipse中导入facebook sdk 4.10.1
Android上的Unity Facebook SDK登录错误