2015-04-28 4 views
-1

Я пытаюсь загрузить раздел на веб-странице HTML, поэтому сначала я начал с простого HTML-кода с делениями в нем ... для извлечения деления. Я пытаюсь проанализировать строку HTML, используя Jsoup.parse() способ, но не работает. Я уже добавил библиотеки Jsoup в проект. Но всякий раз, когда я попытаться разобрать его с помощьюJsoup в Android, авария с ошибкой NoClassDefFound

Document doc = Jsoup.parse(str); 

или

doc = Jsoup.connect(str).get();` 

Это показывает Application has unexpectedly stopped working. Я не знаю, где проблема.

package com.example.kdp; 


import java.io.IOException; 

import org.apache.http.HttpResponse; 

import org.apache.http.client.HttpClient; 
import org.apache.http.client.methods.HttpGet; 

import org.apache.http.impl.client.DefaultHttpClient; 

import org.apache.http.util.EntityUtils; 

import org.jsoup.Jsoup; 

import org.jsoup.nodes.Document; 

import org.jsoup.parser.Parser; 

import org.jsoup.select.Elements; 

import org.jsoup.nodes.Element; 

import android.annotation.SuppressLint; 

import android.app.Activity; 

import android.os.AsyncTask; 

import android.os.Bundle; 

import android.view.View; 

import android.webkit.WebView; 

import android.webkit.WebViewClient; 

import android.widget.Button; 

import android.widget.EditText; 

import android.widget.TextView; 

public class Search extends Activity{ 

    Button bSearch; 
    EditText tSearch; 
    TextView showText; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.search); 
     bSearch = (Button) findViewById(R.id.bSearch); 
     tSearch = (EditText) findViewById(R.id.tSearch); 
     showText = (TextView) findViewById(R.id.show); 
     bSearch.setOnClickListener(new View.OnClickListener() { 


      @SuppressLint("SetJavaScriptEnabled") 
      public void onClick(View v) { 


       final WebView web = (WebView) findViewById(R.id.webview); 
       web.setWebViewClient(new WebViewClient()); 
       web.getSettings().setJavaScriptEnabled(true); 
       web.getSettings().setLoadWithOverviewMode(true); 
       web.getSettings().setLightTouchEnabled(true); 
       web.getSettings().setUseWideViewPort(true);    
       new Thread(new Runnable() { 
         @Override 
         public void run() {       

          web.post(new Runnable() { 
           @Override 
           public void run() {              
            String str="<html><div class='subfooter'>Total expense:$100</div><div class='subheading'>Total revenue:$32</div></html>"; 
            Document doc = Jsoup.parse(str); 
            //Document doc = Jsoup.connect(str).get(); 
            showText.setText(str);       
            web.loadData(str,"html/text","utf-8"); 

           } 
          }); 
         } 
        }).start();     

      } 
     }); 


    } 


} 

LogCat:

04-28 16:47:56.391: I/dalvikvm(535): Could not find method 

org.jsoup.Jsoup.connect, 
referenced from method com.example.kdp.Search$1$1.run 
04-28 16:47:56.391: W/dalvikvm(535): VFY: unable to resolve static method 3591: Lorg/jsoup/Jsoup;.connect (Ljava/lang/String;)Lorg/jsoup/Connection; 04-28 16:47:56.421: W/dalvikvm(535): threadid=12: thread exiting with uncaught exception (group=0x40015560) 
04-28 16:47:56.421: E/AndroidRuntime(535): FATAL EXCEPTION: Thread-14 04-28 16:47:56.421: E/AndroidRuntime(535): java.lang.NoClassDefFoundError: org.jsoup.Jsoup 
04-28 16:47:56.421: E/AndroidRuntime(535) 
+0

Показать трассировку LogCat/stack. – JonasCz

+0

Также используйте 'AsyncTask' вместо потоков. – JonasCz

+0

04-28 16: 47: 56.391: I/dalvikvm (535): Не удалось найти метод org.jsoup.Jsoup.connect, ссылающийся на метод com.example.kdp.Search $ 1 $ 1.run 04-28 16:47 : 56.391: W/dalvikvm (535): VFY: невозможно решить статический метод 3591: Lorg/jsoup/Jsoup; .connect (Ljava/lang/String;) Lorg/jsoup/Connection; 04-28 16: 47: 56.421: W/dalvikvm (535): threadid = 12: выход с исключающим исключением (группа = 0x40015560) 04-28 16: 47: 56.421: E/AndroidRuntime (535): FATAL EXCEPTION : Thread-14 04-28 16: 47: 56.421: E/AndroidRuntime (535): java.lang.NoClassDefFoundError: org.jsoup.Jsoup 04-28 16: 47: 56.421: E/AndroidRuntime (535): – vjnan369

ответ

1

ИСПОЛЬЗУЙТЕ

showText.setText(Html.fromHtml(str));  

вместо

showText.setText(str); 

, как Html.fromHtml даст вам то, что вы ожидаете.

+0

проблема заключается не в методе setText(), а в документе doc = Jsoup.parse (str); он не разбирается в формате документа, когда я использую выше метод .... спасибо за ответ – vjnan369

+0

@ vjnan369, если вы используете способ, который я предложил, я не думаю, что вы должны использовать Document doc = Jsoup.parse (str); попробуйте один и тот же раз, если хотите, и прокомментируйте строку Document doc = Jsoup.parse (str); –

+0

получил это ..... спасибо .... но как я могу получить конкретный код деления html с классом с выше разбора – vjnan369

Смежные вопросы