通过 Xamarin.Facebook.Android sdk 登录 Facebook

Posted

技术标签:

【中文标题】通过 Xamarin.Facebook.Android sdk 登录 Facebook【英文标题】:Login to Facebook by Xamarin.Facebook.Android sdk 【发布时间】:2016-09-05 18:01:51 【问题描述】:

我想使用我的 Xamarin android 应用登录 Facebook。

当我构建我的应用程序时,它显示以下错误

com_facebook_device_auth_dialog_fragment.xml 文件在下面

    <android.support.v7.widget.CardView 
    android:layout_ 
    android:layout_ card_view:cardBackgroundColor="@android:color/transparent" 
card_view:cardElevation="10dp" 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:card_view="http://schemas.android.com/apk/res-auto">
<LinearLayout android:layout_ 
android:layout_ 
android:background="@drawable/com_facebook_auth_dialog_background" 
android:orientation="vertical" 
xmlns:android="http://schemas.android.com/apk/res/android">
<RelativeLayout android:layout_ 
android:layout_ 
android:background="@drawable/com_facebook_auth_dialog_header_background" 
android:orientation="horizontal">
<FrameLayout android:layout_ 
android:layout_>
<ImageView android:layout_
 android:layout_
 android:layout_marginBottom="11dp"
 android:layout_marginLeft="12dp"
 android:layout_marginTop="11dp"
 android:adjustViewBounds="false" 
android:scaleType="fitXY" android:src="@drawable/com_facebook_favicon_white" />
</FrameLayout>
<TextView android:id="@+id/com_facebook_device_dialog_title" android:layout_
 android:layout_
 android:layout_centerInParent="true"
 android:fontFamily="sans-serif-light"
 android:gravity="center" 
android:text="@string/com_facebook_loginview_log_in_button_long"
 android:textColor="@color/com_facebook_share_button_text_color" 
android:textSize="13sp" android:typeface="sans" />
</RelativeLayout>
<TextView android:id="@+id/com_facebook_device_auth_instructions" 
android:layout_
 android:layout_
 android:layout_marginEnd="16dp"
 android:layout_marginStart="16dp"
 android:layout_marginTop="28dp"
 android:fontFamily="sans-serif-light" 
android:gravity="center_horizontal" 
android:singleLine="false" android:textColor="@color/com_facebook_device_auth_text" 
android:textSize="14sp" 
android:typeface="sans" />
<RelativeLayout android:layout_ 
android:layout_ 
android:layout_gravity="center_horizontal"
 android:layout_marginTop="14dp">
<TextView android:id="@+id/confirmation_code" 
android:layout_
 android:layout_ 
android:layout_gravity="center_horizontal"
 android:fontFamily="sans-serif-light" 
android:textColor="@color/com_facebook_device_auth_text" 
android:textSize="23sp"
 android:typeface="sans" 
android:visibility="invisible" />
<ProgressBar android:id="@+id/progress_bar" 
style="@android:style/Widget.Holo.Light.ProgressBar" 
android:layout_
 android:layout_ 
android:layout_alignBottom="@+id/confirmation_code" 
android:layout_alignTop="@+id/confirmation_code" 
android:layout_centerHorizontal="true" 
android:layout_centerInParent="true"
 android:layout_centerVertical="true" />
</RelativeLayout>
<FrameLayout android:layout_ 
android:layout_
 android:layout_marginBottom="14dp"
 android:layout_marginTop="17dp">
<Button android:id="@+id/cancel_button"
 android:layout_
 android:layout_
 android:layout_gravity="center_horizontal" 
android:background="@drawable/com_facebook_auth_dialog_cancel_background"
 android:clickable="true"
 android:focusable="true"
 android:fontFamily="sans-serif-medium" 
android:text="@android:string/cancel"
 android:textAllCaps="true" 
android:textColor="@color/com_facebook_device_auth_text" 
android:textSize="10sp"
 android:textStyle="bold"
 android:typeface="sans" />
</FrameLayout>
</LinearLayout>
</android.support.v7.widget.CardView>

我在我的 string.xml 文件中以这种格式提供了 APP-ID

<string name="facebook_app_id">APP-ID</string>

我的 AndroidMainifest.xml 文件是

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="EcoFriend.EcoFriend" android:versionCode="1" android:versionName="1.0" android:installLocation="auto">
<uses-sdk android:minSdkVersion="16" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application android:label="EcoFriend">
    <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id" />
</application>

我安装的 SDK 是

a) Xamarin.Inc 的 Xamarin.Facebook.Android。 v 4.13.2

b)Xamarin.Inc v23.4.0.1 的 Xamarin.Android.Support.v4

c)Xamarin.Android.Support.v7.CardView by Xamarin Inc. v23.4.0.1

d)Xamarin.Inc v1.4.0 的螺栓

如何解决这个问题?

【问题讨论】:

【参考方案1】:

只需更改:

card_view:cardBackgroundColor="@android:color/transparent" 
card_view:cardElevation="10dp" 

到:

app:cardBackgroundColor="@android:color/transparent" 
app:cardElevation="10dp" 

还要补充:

xmlns:app="http://schemas.android.com/apk/res-auto"

<android.support.v7.widget.CardView...

你会很高兴的。

【讨论】:

以上是关于通过 Xamarin.Facebook.Android sdk 登录 Facebook的主要内容,如果未能解决你的问题,请参考以下文章

下拉框多选框单选框 通过TagHelper绑定数据

酶:测试孩子通过安装渲染失败,但通过浅时通过

java是通过值传递,也就是通过拷贝传递——通过方法操作不同类型的变量加深理解

通过代码进行 Spring 配置与通过注释进行配置

如何理解“不要通过共享内存来通信,而应该通过通信来共享内存”?

通过邮递员通过 API 使用 Rails 主动存储上传文件(.pdf、.jpg 等)? (不通过 Rails 视图)