Я пытаюсь загрузить раздел на веб-странице 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)
Показать трассировку LogCat/stack. – JonasCz
Также используйте 'AsyncTask' вместо потоков. – JonasCz
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