【问题标题】:Unexpected Cast to ShareButton [WrongViewCast] Error on Release Build Android Studio发布构建 Android Studio 时意外投射到 ShareButton [WrongViewCast] 错误
【发布时间】:2017-04-11 13:53:55
【问题描述】:

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

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
  • 通过添加 XML 编辑问题

标签: android facebook-share release-builds


【解决方案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 中您指向的是 ImageView 而不是 @ Facebook提供的987654326@类。

【讨论】:

  • 谢谢!错误消失了。现在我只需要运行它来查看输出。
  • 加 1 表示具体、快速和解释性强。谢谢!
  • 这样,我得到的 FB Share 按钮被禁用。你能建议@BradleyWilson 吗?
  • 你能详细说明“禁用”吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-28
  • 2019-02-26
  • 2022-11-18
  • 1970-01-01
  • 2019-03-06
  • 1970-01-01
相关资源
最近更新 更多