关于在android开发中使用jsoup的详解

我自己在用MP3播放器的时候,利用jsoup从网上下载网页并解析,但是发现在导入jsoup包之后,发现出现java.lang.NoClassDefFoundError:org.jsoup.Jsoup问题  ,如下:       

http://static.oschina.net/uploads/space/2013/1213/163827_7QAv_1421789.png

我已经设置了网络权限,后面通过查询发现是因为ADT20以后不支持导入Jsoup.jar包,要想继续使用应该先将导入的包删了,再在自己项目的根目录下建立libs目录,方法如下:右键项目,选择folder,在弹出的选项中输入libs,然后直接将Jsoup.jar包移到libs中,这里说下,我用复制黏贴不行,然后直接拖拽的,因为libs貌似不能打开,也可能是我不知道

2.,然后运行程序,接下来会出现android.os.NetworkOnMainThreadException错误,这个错误是4.0之后在主线程里面执行Http请求都会报这个错误,这个错误的解决方法如下:将jsoup的哪些代码放在一个线程中,如我自己写的 class DownListener implements OnClickListener{

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            new Thread(downloadRun).start();
        }
        
    }
    Runnable downloadRun = new Runnable(){  
          
        @Override  
        public void run() {  
            // TODO Auto-generated method stub  
            DownLoad download=new DownLoad();
            String geci=download.Download();
            System.out.println("geci:"+geci);
        }  
          };  
    
}

这是在activity中的代码一部分,DownLoad这个类是自己写的,这个类中存放的就是jsoup的代码,如果直接在监听器调中写   DownLoad download=new DownLoad();  String geci=download.Download();,就会出现这个错误,需要放在一个线程中,代码如上,再次运行程序就好了,在这里特别说下,一定要记得在AndroidManifest.xml中声明访问网络权限,这样应该就不会有问题了。




  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值