意外投射到 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。
我在 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。