Android的Facebook登录窗口小部件:org.json.JSONException

问题描述:

我努力学习和使用Facebook SDK在我的项目, 首先,我越来越: com.facebook.widget.loginbutton未能实例

I am trying to learn and use Facebook SDK in my project, First I was getting: com.facebook.widget.loginbutton failed to instantiate

然后我开始:

activity_main.xml:org.json.JSONException 每当我启动应用程序,我得到了:

activity_main.xml: org.json.JSONException and whenever I launched app I got:

05-05 23:45:44.180: E/AndroidRuntime(31957): FATAL EXCEPTION: AsyncTask #1
05-05 23:45:44.180: E/AndroidRuntime(31957): java.lang.RuntimeException: An error occured while executing doInBackground()
05-05 23:45:44.180: E/AndroidRuntime(31957):    at android.os.AsyncTask$3.done(AsyncTask.java:299)
05-05 23:45:44.180: E/AndroidRuntime(31957):    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
05-05 23:45:44.180: E/AndroidRuntime(31957):    at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
05-05 23:45:44.180: E/AndroidRuntime(31957):    at java.util.concurrent.FutureTask.run(FutureTask.java:239)
05-05 23:45:44.180: E/AndroidRuntime(31957):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
05-05 23:45:44.180: E/AndroidRuntime(31957):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
05-05 23:45:44.180: E/AndroidRuntime(31957):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
05-05 23:45:44.180: E/AndroidRuntime(31957):    at java.lang.Thread.run(Thread.java:841)
05-05 23:45:44.180: E/AndroidRuntime(31957): Caused by: java.lang.NullPointerException
05-05 23:45:44.180: E/AndroidRuntime(31957):    at java.util.concurrent.ConcurrentHashMap.containsKey(ConcurrentHashMap.java:911)
05-05 23:45:44.180: E/AndroidRuntime(31957):    at com.facebook.internal.Utility.queryAppSettings(Utility.java:372)
05-05 23:45:44.180: E/AndroidRuntime(31957):    at com.facebook.widget.LoginButton$1.doInBackground(LoginButton.java:667)
05-05 23:45:44.180: E/AndroidRuntime(31957):    at com.facebook.widget.LoginButton$1.doInBackground(LoginButton.java:1)
05-05 23:45:44.180: E/AndroidRuntime(31957):    at android.os.AsyncTask$2.call(AsyncTask.java:287)
05-05 23:45:44.180: E/AndroidRuntime(31957):    at java.util.concurrent.FutureTask.run(FutureTask.java:234)
05-05 23:45:44.180: E/AndroidRuntime(31957):    ... 4 more

我下面的Facebook SDK文档的Facebook开发者和刚刚完成第1步,应用程序是100%完全一样写为Facebook的文档解释了。

I am following Facebook SDK documentation on facebook developers and just completed step 1, the app is 100% exactly same written as facebook documentation explains.

当我打开xml文件的JSON引发错误:

The JSON error is thrown when I open xml file:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <com.facebook.widget.LoginButton
        android:id="@+id/authButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="30dp"
        />

</LinearLayout>

和preSS图形布局。

and press Graphical Layout.

任何帮助吗?一直坚持这个过去的12小时。

Any help please? been stuck with this for past 12 hours.

改变你的应用程序清单文件

changes your application manifest file

 <activity
        android:name="com.example.LoginActivity"
        android:label="@string/app_name" 
        android:parentActivityName="com.example.MainActivity" >


 </activity>
 <activity android:name="com.facebook.LoginActivity"
              android:theme="@android:style/Theme.Translucent.NoTitleBar"
              android:label="@string/app_name" />
    <meta-data android:name="com.facebook.sdk.ApplicationId"   android:value="@string/app_id"/>

记得去你的应用程序的控制台页面上的Facebook开发者网站和复制你的应用程序ID,然后在 RES / strings.xml中文件

Remember to go to your App's Dashboard page on the Facebook developers website and copy your application id, then create the string resource in res/strings.xml file

&LT;字符串名称=APP_ID&GT;您的应用程序ID&LT; /串&GT;