android - Volley 给出运行时异常和没有协议的错误 url
问题描述
当我ImageRequest
使用 volley 运行时,它会给出运行时异常并且没有协议错误。下面是我使用的代码和网址。
ImageRequest ir = new ImageRequest(URL, new Response.Listener<Bitmap>() {
@Override
public void onResponse(Bitmap response) {
musicMetadata.trackArt.add(response);
if (musicMetadata.trackArt.size() == 10) {
extract.setNotify(true);
}
}
}, 0, 0, ImageView.ScaleType.CENTER_CROP, null, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
网址:
https://lastfm-img2.akamaized.net/i/u/64s/4cc18b154dc94f4acf5a1a480d73ab29.png
错误:
08-21 12:40:58.231 6364-6382/com.example.kapiljack.interesting E/Volley: [274] NetworkDispatcher.processRequest: Unhandled exception java.lang.RuntimeException: Bad URL
java.lang.RuntimeException: Bad URL
at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:175)
at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:131)
at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:111)
at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:90)
Caused by: java.net.MalformedURLException: no protocol:
at java.net.URL.<init>(URL.java:589)
at java.net.URL.<init>(URL.java:486)
at java.net.URL.<init>(URL.java:435)
at com.android.volley.toolbox.HurlStack.executeRequest(HurlStack.java:87)
at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:123)
at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:131)
at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:111)
at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:90)
08-21 12:41:06.807 6364-6384/com.example.kapiljack.interesting D/Volley: [276] BasicNetwork.logSlowRequests: HTTP response for request=<[ ] https://lastfm-img2.akamaized.net/i/u/64s/4cc18b154dc94f4acf5a1a480d73ab29.png 0xe7f9399b LOW 3> [lifetime=9166], [size=9667], [rc=200], [retryCount=1]
08-21 12:41:06.811 6364-6385/com.example.kapiljack.interesting D/Volley: [277] BasicNetwork.logSlowRequests: HTTP response for request=<[ ] https://lastfm-img2.akamaized.net/i/u/64s/9758f93dd7104585c537e53cfaa084a4.png 0xe7f9399b LOW 4> [lifetime=9168], [size=8999], [rc=200], [retryCount=1]
08-21 12:41:06.815 6364-6382/com.example.kapiljack.interesting D/Volley: [274] BasicNetwork.logSlowRequests: HTTP response for request=<[ ] https://lastfm-img2.akamaized.net/i/u/64s/4ad5eaab149f4c42af957658b5294998.png 0xe7f9399b LOW 7> [lifetime=8573], [size=9313], [rc=200], [retryCount=1]
08-21 12:41:07.389 6364-6383/com.example.kapiljack.interesting D/Volley: [275] BasicNetwork.logSlowRequests: HTTP response for request=<[ ] https://lastfm-img2.akamaized.net/i/u/64s/cba44589a043424ab11579be7af8bf39.png 0xe7f9399b LOW 2> [lifetime=9749], [size=9363], [rc=200], [retryCount=1]
PS:我在浏览器中检查了网址,它工作正常。
解决方案
问题在于您提供给的 URL ImageRequest
。如果网址是这样的:
"https://lastfm-img2.akamaized.net/i/u/64s/4cc18b154dc94f4acf5a1a480d73ab29.png"
^ ^
然后它不会找到任何像 http 或 https 这样的协议,因此会抱怨 url 格式错误。确保您在 URL 字符串的开头和结尾传递了一个没有双引号的有效 URL。
推荐阅读
- python-3.x - MT5 python 买单脱离图表
- javascript - 如何使用 ReactDOM 渲染模态组件(react-modal)
- reactjs - 找不到模块无法解析反应滚动到底部
- git - 尝试将 Gitlab 运行器合并到远程分支时出现验证错误
- java - Infinispan 查询 12.1.x 未检索到任何结果
- flutter - 在颤动中单击时仅在 ListTile 中的一项上显示尾随图标
- highcharts - Highcharts:当数据存储在 Google 电子表格中时,如何使 startRow 和 endRow 再次工作?
- python - 我可以(安全地)覆盖服务器端 wsgi.py 中的 Django 设置吗?
- jenkins - 配置 LDAP 时的 Jenkins CLI
- oop - 我们应该在拦截设计模式实现中使用 NullValueFilter 吗?