【发布时间】:2012-12-22 22:55:31
【问题描述】:
为什么我的应用在模拟器上显示后总是崩溃?我刚开始学习 Jsoup 解析并遵循不同的 tuts,但我找不到此错误的解决方案。
package com.example.testingjson;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// process
Document doc;
try {
doc = Jsoup.connect("http://google.com/").get();
String title = doc.title();
System.out.print(title);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
这是错误信息
12-26 19:30:42.043: E/AndroidRuntime(4260): FATAL EXCEPTION: main
12-26 19:30:42.043: E/AndroidRuntime(4260): java.lang.NoClassDefFoundError: org.jsoup.Jsoup
12-26 19:30:42.043: E/AndroidRuntime(4260): at com.example.testingjson.MainActivity.onCreate(MainActivity.java:22)
12-26 19:30:42.043: E/AndroidRuntime(4260): at android.app.Activity.performCreate(Activity.java:5104)
12-26 19:30:42.043: E/AndroidRuntime(4260): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
12-26 19:30:42.043: E/AndroidRuntime(4260): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
12-26 19:30:42.043: E/AndroidRuntime(4260): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
12-26 19:30:42.043: E/AndroidRuntime(4260): at android.app.ActivityThread.access$600(ActivityThread.java:141)
12-26 19:30:42.043: E/AndroidRuntime(4260): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
12-26 19:30:42.043: E/AndroidRuntime(4260): at android.os.Handler.dispatchMessage(Handler.java:99)
12-26 19:30:42.043: E/AndroidRuntime(4260): at android.os.Looper.loop(Looper.java:137)
12-26 19:30:42.043: E/AndroidRuntime(4260): at android.app.ActivityThread.main(ActivityThread.java:5039)
12-26 19:30:42.043: E/AndroidRuntime(4260): at java.lang.reflect.Method.invokeNative(Native Method)
12-26 19:30:42.043: E/AndroidRuntime(4260): at java.lang.reflect.Method.invoke(Method.java:511)
12-26 19:30:42.043: E/AndroidRuntime(4260): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
12-26 19:30:42.043: E/AndroidRuntime(4260): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
12-26 19:30:42.043: E/AndroidRuntime(4260): at dalvik.system.NativeStart.main(Native Method)
编辑:这是一张显示导入的 JSOUP jar 文件的图片,但我仍然收到错误消息。
用 Winrar 打开的 APK 文件。
订单和导出设置
【问题讨论】:
-
java.lang.NoClassDefFoundError: org.jsoup.Jsoup:对我来说似乎很不言自明?运行时类路径中缺少提到的类,而在编译时类路径中它是可用的。 -
所以要修复它,我必须将 jsoup-1.7.1.jar 库添加到编译时类路径。怎么样?
-
编译时类路径中没有丢失它(否则您将无法编译它)。它在运行时类路径中丢失。这正是
NoClassDefFoundError的意思。该类已使用 Jsoup 依赖项成功编译,但在运行时又丢失了。 -
这个运行时类路径在哪里?我没有跟着你。我在上面添加了一张图片。
标签: android json html-parsing android-webview jsoup