Android开发:WebView上层ImageView在正式APK中不显示如何解决?
ImageView真机不显示问题解决方案
核心原因
你使用了tools命名空间下的srcCompat属性设置图片,tools命名空间的所有属性仅作用于Android Studio布局预览环节,正式构建APK时会被系统自动移除,因此真机运行时ImageView没有绑定任何图片资源,自然无法显示。
修复方案
将ImageView的tools:srcCompat属性替换为正式生效的资源绑定属性即可,可选两种修改方式:
- 普通drawable资源直接使用
android:src属性:
<ImageView android:id="@+id/imageView" android:layout_width="81dp" android:layout_height="75dp" android:layout_alignParentEnd="true" android:layout_alignParentBottom="true" android:src="@drawable/bell_icon" />
- 如果你项目使用了Appcompat兼容库、用到矢量图资源,推荐使用
app:srcCompat获得更好的兼容性:
<ImageView android:id="@+id/imageView" android:layout_width="81dp" android:layout_height="75dp" android:layout_alignParentEnd="true" android:layout_alignParentBottom="true" app:srcCompat="@drawable/bell_icon" />
- 可选优化:为避免ImageView被上层的WebView遮挡,可额外添加
android:elevation="4dp"属性提升ImageView的显示层级。
异常排查
如果修改后仍无法显示,可排查以下两个常见问题:
- 确认
bell_icon资源文件存放在通用的res/drawable类目录下,未被误放置到res/drawable-v24等仅高版本系统生效的专属目录- 检查构建配置中是否开启了资源压缩/瘦身功能,是否将
bell_icon误判定为无用资源做了删除,可在资源白名单中添加该资源避免被误删。
内容的提问来源于stack exchange,提问作者Madhur Chavan
相关产品推荐
相关产品推荐

