【问题标题】:I'm trying to Run this program on eclipse but get this error in console我正在尝试在 Eclipse 上运行此程序,但在控制台中出现此错误
【发布时间】:2012-10-21 18:22:04
【问题描述】:
Invalid layout of java.lang.String at value
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (javaClasses.cpp:129), pid=6223, tid=3064822640
#  fatal error: Invalid layout of preloaded class
#
# JRE version: 7.0_07-b10
# Java VM: Java HotSpot(TM) Server VM (23.3-b01 mixed mode linux-x86 )
# Failed to write core dump. Core dumps have been disabled. To enable core dumping,     try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/kailash/workspace/Parsing/hs_err_pid6223.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
#

作为 Android 应用程序运行。我是 JAVA 和 android 的新手。并且无法运行此代码,因为控制台中显示了以下错误。所以请任何人都可以帮助我。在这段代码中,我试图从本地 XML 文件中解析一些数据并将其写入一个新文件中。

package com.demo.parsing;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.jsoup.Jsoup;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;

public class MainActivity extends Activity{

    //private static OutputStreamWriter out;


    public static void main(String[] args) throws FileNotFoundException {
        FileInputStream pustaka = new FileInputStream("/home/kailash/workspace/parsing/pustaka-feed.xml");

        try {
            DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();

            Document feed = builder.parse(pustaka);

            NodeList items = feed.getElementsByTagName("item");

            List<String> urls = new LinkedList<String>();

            for (int i = 0; i < items.getLength(); i++) {
                Element item = (Element) items.item(i);
                Element description = (Element) item.getElementsByTagName(
                        "description").item(0);
                urls.addAll(getImages(builder, description.getTextContent()));
            }

             FileWriter f = new FileWriter(new File("outfile"));

            for (String url : urls) {
                f.write(url + "\n");
            }

            f.close();

        } catch (ParserConfigurationException e) {
            e.printStackTrace();
        } catch (SAXException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    private static List<String> getImages(DocumentBuilder builder, String content) throws SAXException, IOException {
        List<String> urls = new LinkedList<String>();

        for (org.jsoup.nodes.Element img : Jsoup.parse(content).getElementsByTag("img")) {
            urls.add(img.attributes().get("src"));
        }

        return urls;
    }



public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}




public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}


}

【问题讨论】:

  • 你在使用 eclipse android 插件吗?我不确定是否可以使用 Java SDK/JRE 运行 android 应用程序。在可以使用插件完成的 AVD 中运行时,它应该可以正常运行。
  • 看问题。正如@Rajesh 建议的那样。请阅读developer.android.com/training/basics/firstapp/index.html
  • Rajesh 和 mukesh goel 链接没有帮助.. 还有什么问题吗?
  • @KailashPawar,你能详细说明你是如何运行你的应用程序的吗?
  • @KailashPawar,您显然正在寻找快速解决问题的方法,遗憾的是,它不存在,因为问题比微不足道更根本。正确掌握基础知识。了解如何编写和运行 Android 应用程序。提示:public static void main 不是 Android 应用的起点。

标签: java android xml eclipse parsing


【解决方案1】:

Kailash,您不能只是将 Java 代码粘贴到 Android 活动中并期望它能够正常工作。很可能您将此程序作为 Java 应用程序运行,因此它非常失败。

您不能在 Android 应用程序中使用 static void main(String[] args),因此第一步是修改该方法的签名(删除 static,删除 String[] 参数,将其改为 private)。

之后,您的 Activity 将不再执行任何操作,因为您的方法不会从任何地方被调用。您必须找到一个地方(可能是onCreate())来启动AsyncTask 来解析XML(此外,您必须切换到通过ID 检索资源的Android 方式,因为您无法真正访问您的工作区从任何 Android 设备...)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    • 2016-06-03
    • 2020-06-14
    相关资源
    最近更新 更多