android - Android Volley:ImageRequest 中的错误 URL
问题描述
我使用的是 Android Studio 4.1.3(最新版本)。我正在使用 Android Volley 库,我正在尝试通过 ImageRequest 从 API 中检索图像。我使用的 URL 如下:
private String skinUrl = "http://crafatar.com/renders/body/680f95cff25d4f178fea90e2c003bebf.png?size=512&overlay&scale=7"
在方法中使用此 url
private void requestImage() {
RequestQueue requestQueue = Volley.newRequestQueue(this);
ImageRequest imageRequest = new ImageRequest(skinUrl, response -> skin.setImageBitmap(response),
0,
0,
ImageView.ScaleType.CENTER_CROP,
null,
error -> {
});
requestQueue.add(imageRequest);
}
我收到此错误消息
NetworkDispatcher.processRequest: Unhandled exception java.lang.RuntimeException: Bad URL
java.lang.RuntimeException: Bad URL
at com.android.volley.toolbox.NetworkUtility.shouldRetryException(NetworkUtility.java:164)
at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:145)
at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:132)
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:601)
at java.net.URL.<init>(URL.java:498)
at java.net.URL.<init>(URL.java:447)
at com.android.volley.toolbox.HurlStack.executeRequest(HurlStack.java:82)
at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:104)
at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:132)
at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:111)
at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:90)
我也尝试过使用 URLEncoder 方法
skinUrl = URLEncoder.encode(skinUrl);
但结果是一样的。问题仅出现在 ImageRequest 中,因为我还从另一个 API 检索 json 数据。
解决方案
简单的兄弟使用 glide 图像加载库
因为它是 android 的顶级产品,而且图像加载速度快、效率高,您只需输入图像 URL 并加载图像,但您必须在清单中应用 Internet 权限。
推荐阅读
- python - pandas 使用 groupby 和基于值的过滤器
- python - 在python(使用bs4)中跨多个非统一表返回数据的一次迭代?
- ruby-on-rails - Rails 服务器在开发模式下工作,但不在生产模式下
- javascript - 简单的 Web 脚本无休止地运行,而不是只运行一次
- sharepoint-online - Microsoft Graph API:更新 DocumentLibrary 中文件元数据的 PATCH 导致 409 响应;代码:resourceModified
- sql - Oracle SQL 多列 <> 空选择
- r - 随机选择集群并添加观察值时如何提高性能?
- swift - 在视图控制器中使用自定义 uiview
- android - # 在 https://developer.android.com/ 中是什么意思
- scala - 如何在火花数据帧中将其他情况转换为其他情况