Glide无法正常加载图片

这篇具有很好参考价值的文章主要介绍了Glide无法正常加载图片。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述

当使用Glide框架加载图片时,可能会遇到加载失败的情况,导致图片无法正常显示,原因有很多。

以下是我的报错信息:

Load failed for https://i.ytimg.com/vi/zOEISgh7k_g/hqdefault.jpg with size [392x221]
    class com.bumptech.glide.load.engine.GlideException: Failed to load resource
    There was 1 root cause:
    com.bumptech.glide.load.HttpException(Failed to connect or obtain data, status code: -1)
     call GlideException#logRootCauses(String) for more detail
      Cause (1 of 1): class com.bumptech.glide.load.engine.GlideException: Fetching data failed, class java.io.InputStream, REMOTE

解决方法

我加载的图片时一张https的图片,分析得知是证书问题,所以我这的解决方案是忽略https证书校验,只需在Application的onCreate()调用一下以下方法。

	/**
     * 忽略https的证书校验
     */
    private fun handleSSLHandshake() {
        try {
            val trustAllCerts = arrayOf<TrustManager>(object : X509TrustManager {
                override fun getAcceptedIssuers(): Array<X509Certificate?> {
                    return arrayOfNulls<X509Certificate>(0)
                }

                override fun checkClientTrusted(certs: Array<X509Certificate?>?, authType: String?) {}
                override fun checkServerTrusted(certs: Array<X509Certificate?>?, authType: String?) {}
            })
            val sc = SSLContext.getInstance("TLS")
            // trustAllCerts信任所有的证书
            sc.init(null, trustAllCerts, SecureRandom())
            HttpsURLConnection.setDefaultSSLSocketFactory(sc.socketFactory)
            HttpsURLConnection.setDefaultHostnameVerifier { hostname, session -> true }
        } catch (ignored: Exception) {
        }
    }

还有一种作法,通过配置证书:
1.在res/xml/下新建一个xml,可以命名为net_config.xml:

<?xml version="1.0" encoding="utf-8"?>
 
<network-security-config> 
  <domain-config cleartextTrafficPermitted="false"> 
    <domain includeSubdomains="true">xxx.xxx.com</domain> 
  </domain-config>
</network-security-config>

2.在AndroidManifestde的application节点添加:

    <application
        android:allowBackup="true"
        android:networkSecurityConfig="@xml/net_config"

具体参数详解参考:Android网络安全之NetworkSecurityConfig

其他可能的原因

如果不是证书问题
1.可能受android版本影响,android9.0系统默认禁止http协议,即禁止明文传输,必须使用https来通讯,除非清单中设置了android:usesCleartextTraffic=“true”。所以需要在AndroidManifestde的application节点添加:

    <application
        android:name=".TvApp"
        android:usesCleartextTraffic="true"

2.检查下是否拥有网络权限文章来源地址https://www.toymoban.com/news/detail-539932.html

<uses-permission android:name="android.permission.INTERNET" />

到了这里,关于Glide无法正常加载图片的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: com.mysql.jdbc.Driver

    记录idea报错, 1.引用外部库 mysql-connector-java-8.0.26 dependency       groupIdmysql/groupId       artifactIdmysql-connector-java/artifactId       version8.0.26/version /dependency   2. 引入最新版的c3p0 dependency     groupIdcom.mchange/groupId     artifactIdc3p0/artifactId     version0.9.5.5/version /dependency 3.连接的驱

    2024年02月02日
    浏览(36)
  • 数据库报错 Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Access denied

    如果你也是用Java连接数据库的可以尝试看看 第一种类型 如果是MySQL8.0以上的,需要在后面加上 如果是这种的错误类型的,可以试试 第二种类型 数据库没有设置开放权限,不给连接,这种情况就算是使用连接数据库工具也没办法连接的。解决方式如下 第三种类型 这种如果是

    2024年01月24日
    浏览(64)
  • Failed to obtain JDBC Connection;nested exception is dm.jdbc.driver.DMException:初始化SSL环境失败

    一个基于若依单体架构的多模块 Maven 项目的国产化迁移适配,由于是客户的代码,我们不用关心具体的功能实现,直接来做迁移即可。实施时,按照我们总结的整改建议调整源码,具体迁移适配过程可参考本专栏的其他文章。 组件 操作系统:麒麟V10 CPU: HUAWEI, Kunpeng 920 数据

    2023年04月25日
    浏览(40)
  • Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: The server time zone va

    这个错误表明在尝试获取 JDBC 连接时发生了 SQLException,并且该异常表示服务器不识别或不包含一个以上的时区。以下是一些可能的解决方法: 确认服务器时区设置:确保你的服务器时区设置正确。你可以在数据库中运行以下查询来检查当前时区设置: sql SELECT @@全球化设置

    2024年02月09日
    浏览(36)
  • [渲染层网络层错误] Failed to load local image resource /miniprogram/images/1.jpg无法加载本地图片资源

    最近开始学习编写小程序,跟着教程走到展示图片这一步发现这个错误。按照正常的编程思路和百度大法,大部分说是路径错误和图片不能带有中字。但是按照经验复制相对路径和绝对路径都不行,还是同样的错误。代码如下。 图片的路径绝对没问题,百度有的博客说用wx

    2024年02月11日
    浏览(35)
  • curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused的正常解决方法

    这个报错。。就是国内网络问题导致的raw.githubusercontent.com无法正常访问,可能科学上网也没什么作用,看网上的解决方法都是什么改host文件,改dns之类的。。属实蚌了 这个命令大多就是从raw.githubusercontent.com的路径下执行一个可执行文件,用来拷贝github上的文件到本地目录

    2024年02月12日
    浏览(30)
  • caused: serialize page error, dataId=, group=;caused: Failed to obtain JDBC Connection; nested exception is java.sql.SQLTransien

    这些错误消息提示数据库连接出现问题。 serialize page error, dataId=, group= 是指序列化页面时出错。 Failed to obtain JDBC Connection; nested exception is java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 3000ms 是指无法获取 JDBC 连接,连接池 HikariPool-1 中的连

    2024年02月15日
    浏览(50)
  • Glide图片加载框架是如何确定图片加载的生命周期

    Glide基本使用方式:Glide.with(context).load(url).into(imageView); Glide 最基本的用法就是三步走:先with(),再load(),最后into()。 那么我们开始一步步阅读这三步走的源码,先从with()看起。 1. with() with()方法是Glide 类中的一组静态方法,它有好几个方法重载,我们来看一下Glide 类中所 有

    2024年02月01日
    浏览(34)
  • [Android]图片加载库Glide

    目录 Glide的介绍  Glide的基本使用   指定图片的格式 Glide占位符  指定图片的大小  过渡动画 图片变换 Generated API Glide的介绍 Glide是一个快速高效的Android图片加载库,可以自动加载网络,本地文件,app资源中的文件,注重于平滑的滚动。 开源地址:https://github.com/bumptech/gl

    2024年02月08日
    浏览(31)
  • 关于Elasticsearch 报错failed to obtain node locks....

    版本:7.12.1 java.lang.IllegalStateException: failed to obtain node locks , tried [[/usr/share/elasticsearch/data]] with lock id [0]; maybe these locations are not writable or multiple nodes were started without increasing [node.max_local_storage_nodes] (was [1])? 主要原因有三种: 1、进程冲突: 通过 ps -aux | grep elasticsearch 命令查找冲

    2024年02月11日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包