我在执行Facebook登录时遇到问题。调用登录片段时,应用程序崩溃。我读到很多与此有关的问题,但他们的答案对我不起作用。
这是我的XML:
<RelativeLayout 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">
<Button
android:id="@+id/bLoginAccedi"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Accedi"
android:layout_marginTop="70dp"
android:layout_alignTop="@+id/bFacebookAccedi"
android:layout_alignLeft="@+id/bFacebookAccedi"
android:layout_alignRight="@+id/bFacebookAccedi"
android:layout_alignStart="@+id/bFacebookAccedi" />
<com.facebook.widget.LoginButton
xmlns:fb="http://schemas.android.com/apk/res-auto"
android:id="@+id/bFacebookAccedi"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="150dp"
fb:login_text="Accedi con Facebook"
/>
</RelativeLayout>
这是我的LoginFragment:
public class LoginFragment extends Fragment {
private View parentView;
private ResideMenu resideMenu;
private Button bLoginAccedi;
private LoginButton bFacebookAccedi;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
parentView = inflater.inflate(R.layout.login, container, false);
setUpViews();
ActionBar actionBar = getActivity().getActionBar();
actionBar.show();
actionBar.setTitle("Log in");
actionBar.setDisplayHomeAsUpEnabled(true);
bFacebookAccedi = (LoginButton) parentView.findViewById(R.id.bFacebookAccedi);
bLoginAccedi = (Button) parentView.findViewById(R.id.bLoginAccedi);
bFacebookAccedi.setBackgroundColor(getResources().getColor(R.color.turquoise));
bLoginAccedi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(getActivity(), Accesso.class);
startActivity(i);
}
});
return parentView;
}
private void setUpViews() {
MainActivity parentActivity = (MainActivity) getActivity();
resideMenu = parentActivity.getResideMenu(); }
}
而我的清单:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data
android:name="com.facebook.sdk.ApplicationId "
android:value="@string/facebook_app_id"/>
<activity
android:name="discontinuity.it.agency1.MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="discontinuity.it.agency1.ConfermaFB"
android:label="@string/title_activity_conferma_fb"
android:screenOrientation="portrait">
</activity>
<activity
android:name="discontinuity.it.agency1.Accesso"
android:label="@string/title_activity_accesso"
android:screenOrientation="portrait">
</activity>
</application>
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
我在logcat中遇到此错误:
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:300)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
Caused by: java.lang.NullPointerException
at java.util.concurrent.ConcurrentHashMap.containsKey(ConcurrentHashMap.java:911)
at com.facebook.internal.Utility.queryAppSettings(Utility.java:673)
at com.facebook.widget.LoginButton$1.doInBackground(LoginButton.java:678)
at com.facebook.widget.LoginButton$1.doInBackground(LoginButton.java:675)
at android.os.AsyncTask$2.call(AsyncTask.java:288)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
似乎错过了应用程序ID,但我已经将其与元数据一起放入了清单中。那我怎么了
您似乎在这里有多余的空间:
android:name="com.facebook.sdk.ApplicationId "
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句