【问题标题】:Android: Parsing a page with JsoupAndroid:使用 Jsoup 解析页面
【发布时间】: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


【解决方案1】:

您能否打开您的 apk 并检查 apk 的 libs 文件夹中是否存在 jsoup 库?如果不是,则意味着它尚未添加到构建中。下一步是进行清理,确保删除先前构建的 apk,将 jsoup 复制到 libs 文件夹并重建 apk。检查 jsoup 是否已复制到新创建的 apk。

【讨论】:

  • 同样的问题。我创建了一个新项目,将 jsoup jar 移动到 libs 文件夹。改革清理并启动模拟器,它崩溃了。代码对你有用吗?
  • 你检查你的apk是否有jsoup库吗?
  • 那是哪个文件?它是bin文件夹中的那个吗?我用eclipse打开它吗?抱歉还是新的。
  • 试试这个 .. 看起来你面临同样的问题。 stackoverflow.com/questions/9934744/…
  • 当您打开 apk 时,您的 apk 中不存在 jsoup 库。所以它不会在构建过程中被复制。尝试按照我上面粘贴的链接中的步骤进行操作。将 jsoup 复制到项目中的 libs 文件夹并修复“订购和导出”设置。
【解决方案2】:

您需要将 JSOUP jar 文件导入到您的项目中。如果您在 Eclipse 上,最简单的方法是将它放在 libs 文件夹中,并且它应该在构建时自动添加,或者您可以右键单击项目,构建路径 -> 添加外部档案。有时我在将某些 jar 导入项目时也遇到问题,但通过构建 proj 几次或重新启动 eclipse 都解决了。

【讨论】:

  • 我导入了,同样的问题,看上图。
猜你喜欢
  • 1970-01-01
  • 2023-04-01
  • 2015-09-04
  • 2014-02-15
  • 2013-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多