Android:Drawable没有出现

我有一个相当简单的XML文件,其中有一个图像button。 图像布局xmldevise器上的图像显示正常,运行开发版本时显示正常,但只要创build签名的apk文件并运行它,图像不再显示。 这只是一个空的button。 我想不出一个理由,有什么想法? xml文件如下所示:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/navigation_root" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:id="@+id/navigation_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="5dp" android:text="TextView" android:textAppearance="?android:attr/textAppearanceLarge" > </TextView> <SeekBar android:id="@+id/navigation_seekbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_weight="1" android:padding="5dp" > </SeekBar> <LinearLayout android:id="@+id/linearLayout1" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="5dp" > <ImageButton android:id="@+id/part_select_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/chapter_select" > </ImageButton> <Button android:id="@+id/navigation_ok_button" android:layout_width="75dp" android:layout_height="match_parent" android:layout_weight="1" android:text="@string/ok" > </Button> <Button android:id="@+id/navigation_cancel_button" android:layout_width="75dp" android:layout_height="match_parent" android:layout_weight="1" android:text="@string/cancel" > </Button> </LinearLayout> 

image @drawable/chapter_select是res / drawable文件夹中一个相当小(41 * 41)的png文件。

Solutions Collecting From Web of "Android:Drawable没有出现"

看起来像这是一个Android的错误,有时在可绘制文件夹中的第一个图像不显示。 添加一个名为aaaa.png的虚拟图像到可绘制的文件夹,问题就解决了。 在这里find答案: ImageButton不显示特定的drawable

尝试把图像绘制hdpi和drawable-mdpi文件夹取决于你运行你的应用程序的设备,图像在这些文件夹中search…

但是,绘制意味着图像应该在任何地方都可用,但是有时候(取决于你的清单设置)这不可能是真的,我的意思是你可以转换兼容模式。

也可以在运行时尝试将图像设置为视图

 iv.setImageResource(R.drawable.somethig); 

有相同的问题,并通过删除所有特殊字符解决它。 在我的情况下,它是破折号“ – ”在文件名中:

background-720.png => background.png

我的情况很奇怪。在将FireBase Crash报告集成到我的应用程序之前,一切都是正确的。

我刚刚添加了编译'com.google.firebase:firebase-crash:11.0.1'DrawableLeft消失了 。当我通过xml时,发现了一个警告(在下面列出)。

所以添加android:drawableStart &问题消失了。

我仍然想知道FireBase崩溃报告的相关性。

使用左/右而不是开始/结束属性在文本从右向左stream动的语言环境中呈现布局时,使用Gravity#LEFT和Gravity#RIGHT可能会导致问题。 使用重力#开始和重力#结束。

同样,在XML重力和layout_gravity属性中,使用start而不是left。 对于paddingLeft和layout_marginLeft等XML属性,请使用paddingStart和layout_marginStart。

注:如果您的minSdkVersion小于17,则应添加较旧的左/右属性以及新的开始/右属性。 在较旧的平台上,RTL不受支持,开始/权限属性未知,因此被忽略,您需要较旧的左/右属性。

有一个单独的棉绒检查,捕捉这种types的错误。 (注意:对于Gravity#LEFT和Gravity#START,你甚至可以使用这些常量,因为起始位掩码是左位掩码的超集,所以你可以使用gravity =“start”而不是gravity =“左|启动”)。