意外投射到 ShareButton [WrongViewCast] Release Build Android Studio 错误

Unexpected Cast to ShareButton [WrongViewCast] Error on Release Build Android Studio

我在 Android Studio 内置的 Android 应用程序的一项活动中有 Facebook 分享按钮。在 Build Type Debug 上,它工作得很好。但是当改成Release时,Build Fails并出现如下错误。

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

只有 FB ShareButton 才会出现这种情况。

有人能帮忙吗?

Activity.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。

将您的 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 中你指向ImageView 而不是 Facebook 提供的 ShareButton class。