【问题标题】:Android - Unhandled java.net.MalformedURLExceptionAndroid - 未处理的 java.net.MalformedURLException
【发布时间】:2014-10-04 22:03:47
【问题描述】:

我的 Android Studio 项目中的一些代码出现 MalformedURLException。我的目标是从网页获取并显示图像,并且 URL 似乎很好,但它给了我这个错误。

我已经将代码放在try,catch 中,但这仍然给我错误。 这是获取图像并显示它的代码:

    try
    {
        url = new URL(items.get(position).getLink());
        bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());
    }
    catch (IOException e)
    {
        throw new RuntimeException("Url Exception" + e);
    }

    holder.itemTitle.setText(items.get(position).getTitle());;
    holder.itemHolder.setBackgroundDrawable(new BitmapDrawable(bmp));

items.get(position).getLink() 旨在获取在 ListView 中显示的链接,但即使像 URL url = new URL("https://www.google.com") 这样的链接也不起作用。

谢谢。

【问题讨论】:

  • 你能做一个 Log.e("urltest", items.get(position).getLink())` 来查看你传递给decodeStream的完整url
  • 感谢您的回复,我刚刚这样做了,而且 URL 看起来还不错。我正在尝试制作一个新闻应用程序,所以这里是列表项之一输出的链接:pcworld.com/article/2691912/…

标签: java android ioexception malformedurlexception


【解决方案1】:

你的网址是formatted without the protocol at the beginning试试

url = new URL("http://"+items.get(position).getLink());

有时 url 字符串可能包含特殊字符,在这种情况下您需要 encode it properly please see this。 而且,您在评论中发布的网址不是图片。

【讨论】:

  • 对不起@ashoke,但是当我发布链接时,stackoverflow 正在删除它。它在开始时确实有 http 协议
【解决方案2】:

由于 url 类是异常

添加另一个类似的捕获

catch (MalformedURLException e) {

            e.printStackTrace();
        }

【讨论】:

    【解决方案3】:

    只需点击 alt+enter 然后导入 try catch 部分...这对我有帮助...

    【讨论】:

    • 您需要添加更多关于您所做操作的详细信息,例如您使用了哪个异常、发生了什么解决了问题等。
    猜你喜欢
    • 1970-01-01
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多