0

我在 Android Studio 中构建的 Android 应用活动之一中有 Facebook 分享按钮。在构建类型调试上,它工作得非常好。但是当更改为发布时,构建失败并出现以下错误。

Error:(190) Error: Unexpected cast to ShareButton: layout tag was ImageView [WrongViewCast]

这仅发生在 FB ShareButton 上。

任何人都可以帮忙吗?

活动.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_news"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:background="@color/colorWhite"
    tools:context="com.*****.*****.News">

    <ImageView
        android:id="@+id/imgMainImage"
        android:layout_width="70dp"
        android:layout_height="250dp"
        android:layout_alignParentEnd="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:maxWidth="70dp"
        android:scaleType="centerCrop" />

    <ImageView
        android:id="@+id/imgUserImage"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_alignParentEnd="true"
        android:layout_alignParentTop="true"
        android:layout_marginRight="15dp"
        android:layout_marginTop="15dp"
        android:foregroundGravity="center"
        app:srcCompat="@drawable/logo_app" />

    <TextView
        android:id="@+id/lblChangePasswordTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/imgMainImage"
        android:layout_alignParentStart="true"
        android:background="@drawable/news_headline_tint"
        android:paddingBottom="10dp"
        android:paddingLeft="20dp"
        android:paddingRight="20dp"
        android:paddingTop="10dp"
        android:textColor="@android:color/background_light"
        android:textSize="20sp"
        android:textStyle="normal|bold"
        android:layout_alignParentEnd="true" />

    <Button
        android:id="@+id/btnLogout"
        android:layout_width="wrap_content"
        android:layout_height="20dp"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:background="@android:color/transparent"
        android:text="Logout"
        android:onClick="logOut"
        android:textColor="@color/colorPrimaryDark"
        android:textStyle="bold" />

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/btnLogout"
        android:layout_below="@+id/imgMainImage"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:id="@+id/scrollView2">

        <TextView
            android:id="@+id/lblFullText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@+id/btnLogout"
            android:layout_alignParentEnd="true"
            android:layout_alignParentStart="true"
            android:layout_below="@+id/imgMainImage"
            android:text="TextView" />
    </ScrollView>

    <ImageView
        android:id="@+id/imgFBShare"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/lblChangePasswordTitle"
        android:layout_alignEnd="@+id/scrollView2"
        android:layout_marginBottom="12dp"
        android:onClick="shareFB"
        app:srcCompat="@drawable/com_facebook_button_icon_blue" />

</RelativeLayout>

它是最后一个 ImageView。

4

1 回答 1

1

从以下位置更改您的 XML:

<ImageView
        android:id="@+id/imgFBShare"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/lblChangePasswordTitle"
        android:layout_alignEnd="@+id/scrollView2"
        android:layout_marginBottom="12dp"
        android:onClick="shareFB"
        app:srcCompat="@drawable/com_facebook_button_icon_blue" />

至:

<com.facebook.share.widget.ShareButton
        android:id="@+id/imgFBShare"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/lblChangePasswordTitle"
        android:layout_alignEnd="@+id/scrollView2"
        android:layout_marginBottom="12dp"
        android:onClick="shareFB"
        app:srcCompat="@drawable/com_facebook_button_icon_blue" />

您遇到的问题是您试图从中获取功能ShareButton并且您正在这样进行转换,但不幸的是在您的 XML 中您指向的是 aImageView而不是ShareButtonFacebook 提供的类。

于 2017-04-11T14:03:20.603 回答