0

我使用 Facebook SDK(和 Twitter、Linkedin)登录我的应用程序。如果我指定 minSdkVersion<10,它会完美运行。我需要升级应用程序才能使用 Fragment..

<uses-sdk android:minSdkVersion="10" />

对于 11 及更高版本,应用程序在收到令牌后崩溃!我需要帮助!看一下错误:

更新

07-12 16:58:44.136: D/AndroidRuntime(18310): Shutting down VM

    07-12 16:58:44.148: E/AndroidRuntime(18310): FATAL EXCEPTION: main
07-12 16:58:44.148: E/AndroidRuntime(18310): java.lang.NullPointerException: println needs a message
07-12 16:58:44.148: E/AndroidRuntime(18310):    at android.util.Log.println_native(Native Method)
07-12 16:58:44.148: E/AndroidRuntime(18310):    at android.util.Log.d(Log.java:138)
07-12 16:58:44.148: E/AndroidRuntime(18310):    at com.branchu1.Login$1$1.onComplete(Login.java:161)
07-12 16:58:44.148: E/AndroidRuntime(18310):    at com.facebook.android.Facebook$1.onComplete(Facebook.java:312)
07-12 16:58:44.148: E/AndroidRuntime(18310):    at com.facebook.android.FbDialog$FbWebViewClient.shouldOverrideUrlLoading(FbDialog.java:144)
07-12 16:58:44.148: E/AndroidRuntime(18310):    at android.webkit.CallbackProxy.uiOverrideUrlLoading(CallbackProxy.java:224)
07-12 16:58:44.148: E/AndroidRuntime(18310):    at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:324)
07-12 16:58:44.148: E/AndroidRuntime(18310):    at android.os.Handler.dispatchMessage(Handler.java:99)
07-12 16:58:44.148: E/AndroidRuntime(18310):    at android.os.Looper.loop(Looper.java:137)
07-12 16:58:44.148: E/AndroidRuntime(18310):    at android.app.ActivityThread.main(ActivityThread.java:4424)
07-12 16:58:44.148: E/AndroidRuntime(18310):    at java.lang.reflect.Method.invokeNative(Native Method)
07-12 16:58:44.148: E/AndroidRuntime(18310):    at java.lang.reflect.Method.invoke(Method.java:511)
07-12 16:58:44.148: E/AndroidRuntime(18310):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
07-12 16:58:44.148: E/AndroidRuntime(18310):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
07-12 16:58:44.148: E/AndroidRuntime(18310):    at dalvik.system.NativeStart.main(Native Method)

Twitter 和 Linkedin SDK 也是如此。如果我从清单中删除字段 android:minSdkVersion,它就可以工作。我真的不明白!

谢谢!

4

2 回答 2

0

“@Rawkode 第 161 行是 facebook sdk 的一个 lof。Log.d("Facebook", e.getMessage()); 看来,Facebook 没有发送任何内容,我从这行收到错误消息。”

您的问题是 e.getMessage() 是一个空字符串,当您尝试使用空字符串调用 Log.d(TAG, message) 时,它会因 NPE 而崩溃。我遇到了类似的问题,我花了一段时间才找到它:

有些错误没有 getMessage() 方法的任何数据,因为它不是必需的。我的解决方案是创建自己的方法,其中始终包含一些文本,并且您将永远不会再从中获得另一个 NPE:

private void logIt(String message){
    Log.d(TAG, "Logged: " + message);
}

只需调用它而不是普通的 Log.d() 就不会遇到这个问题,因为总会有数据要记录(在你的情况下,它会说:“Logged: null”)。您还可以修改该方法以接受单个标签,但这不是必需的。

于 2012-07-12T17:23:06.400 回答
0

我有同样的错误.. 该应用程序在 9 或更低版本上完美运行,但在 android 3.0 或更高版本上不起作用。

尝试使用新的 facebook 的 api,它可以工作..

https://developers.facebook.com/android/

对不起我的英语不好!

于 2012-12-17T17:56:19.917 回答