【问题标题】:How to resolve java.net.MalformedURLException: Protocol not found: 9 in android如何解决 java.net.MalformedURLException: Protocol not found: 9 in android
【发布时间】:2012-05-03 13:20:02
【问题描述】:

我正在尝试使用 BitmapFactory 从 url (http://www.elifeshopping.com/images/stories/virtuemart/product/thumbnail (2).jpg) 在我的 android 应用程序中加载图像,代码如下:

try {
            // ImageView i = (ImageView)findViewById(R.id.image);
            bitmap = BitmapFactory.decodeStream((InputStream) new URL(url)
                    .getContent());
            i.setImageBitmap(bitmap);
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

我明白了

05-03 15:57:13.156: W/System.err(1086): java.net.MalformedURLException: Protocol not found: 9
05-03 15:57:13.167: W/System.err(1086):     at java.net.URL.<init>(URL.java:273)
05-03 15:57:13.167: W/System.err(1086):

at java.net.URL.<init>(URL.java:157).

请告诉我我做错了什么。

【问题讨论】:

  • 你从哪里得到网址。检查您的变量 url 输入字符串是否以 http:// 或 https:// 开头打印异常中的 url 字符串
  • 我在 web 服务中获取了 url,它仅以 http 开头
  • 你应该打开 URL 连接

标签: java android malformedurlexception


【解决方案1】:

我用过

productImgUrl = productImgUrl.replaceAll(" ", "%20");

我用%20替换了所有空格

它对我有用..

感谢大家的回复

【讨论】:

  • 对我有用,我在浏览器中检查它显示在图像中,但是当我检查应用程序时它显示格式错误的异常,所以我添加了这个小代码它工作正常,它没有显示错误。谢谢@Shruti
【解决方案2】:

请告诉我我做错了什么。

我认为问题在于您使用无效的 URL 字符串调用 URL 构造函数。实际上,异常消息暗示 URL 字符串以“9:”开头。 (“协议”组件是 URL 的第一个冒号字符之前的字符序列。)

如果 URL 字符串真的是:

“http://www.elifeshopping.com/images/stories/virtuemart/product/thumbnail (2).jpg”

所以我推断它是……事实上……别的东西。在调用URL 构造函数之前将其打印出来以找出它的真正含义。

(您还应该 %-转义 URL 路径中的空格字符......但我怀疑这会解决这个特殊的异常化身。)

【讨论】:

  • 我没有得到这个(异常消息暗示 URL 字符串以“9:”开头。(“协议”组件是第一个冒号字符之前的字符序列。)).. . 我需要编辑 http 吗?
  • @Shruti - 我是说该字符串不是您传递给 URL 构造函数的字符串。
【解决方案3】:
猜你喜欢
  • 1970-01-01
  • 2016-05-23
  • 2022-06-23
  • 1970-01-01
  • 2018-12-23
  • 2021-07-21
  • 1970-01-01
  • 2012-03-13
  • 1970-01-01
相关资源
最近更新 更多