在Android应用中,有:
public class Pars extends Activity{
public Document docout(){
InputStream is = getResources().openRawResource(R.raw.talechap01);
Document docout = null;
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
try {
builder = domFactory.newDocumentBuilder();
docout = builder.parse(is);
} catch (ParserConfigurationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return docout;
}
和
public class Manager {
public static String getStory(String spage, Document docs) {
XPathExpression expr;
XPath xpath = XPathFactory.newInstance().newXPath();
Object result = null;
String num = spage;
String par = null;
try {
expr = xpath.compile("//decision"+num+"/p//text()");
result = expr.evaluate(docs, XPathConstants.NODESET);
}
catch (XPathExpressionException e) {
e.printStackTrace();
}
NodeList nodes = (NodeList) result;
for (int i = 0; i < nodes.getLength(); i++) {
par = nodes.item(i).getNodeValue();
System.out.println(par);
}
return par;
}
}
现在我想测试代码。
public class Test {
public static void main(String[] args) {
try {Pars p = new Pars();
Document doc = p.docout();
System.out.println(Manager.getStory("000", doc));
}catch (Exception e){
e.printStackTrace();
}
}
}
我将“Test”作为java应用程序运行,然后得到:
线程“main”中的异常java.lang.NoClassDefFoundError: android / app / Activity at java.lang.ClassLoader.defineClass1(Native 方法)at java.lang.ClassLoader.defineClass(Unknown Source)at java.security.SecureClassLoader.defineClass(未知来源)at java.net.URLClassLoader.defineClass(未知来源)at java.net.URLClassLoader.access $ 100(未知来源)at java.net.URLClassLoader $ 1.run(未知来源)at java.net.URLClassLoader $ 1.run(未知来源)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(未知来源)at java.lang.ClassLoader.loadClass(未知来源)at sun.misc.Launcher $ AppClassLoader.loadClass(未知来源)at java.lang.ClassLoader.loadClass(未知来源)at com.stack.over.Test.main(Test.java:11)引起: java.lang.ClassNotFoundException:android.app.Activity at java.net.URLClassLoader $ 1.run(未知来源)at java.net.URLClassLoader $ 1.run(未知来源)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(未知来源)at java.lang.ClassLoader.loadClass(未知来源)at sun.misc.Launcher $ AppClassLoader.loadClass(未知来源)at java.lang.ClassLoader.loadClass(未知来源)... 13更多
我试图找到如何修复但无法实现它。 我从另一个问题得到了这个答案,但我还是那样的noob,并且无法弄清楚如何修复它。
您已将Pars类定义为扩展类Activity。该 你看到的错误告诉你那个班级 android.app.Activity在类路径上不可用。也许你需要 检查导入的库。 - adamretter 3月5日10:01
谢谢大家。
答案 0 :(得分:3)
错误在于您尝试运行引用Android类(android.app.Activity
)的程序作为常规Java程序,该程序在其类路径中没有Android运行时库。
您应该将Android应用程序作为Android应用程序(在模拟器或设备上)和常规Java程序作为常规Java程序运行,而不是将它们混合在一起。 Activity
是Android; main()
方法是常规Java。
要了解Android应用开发,您可以从developer.android.com getting started documentation开始。
答案 1 :(得分:1)
错误消息说明了一切。你现在在写Android。尝试编写main方法在Android中没有比编写在Tomcat中运行的webapp更有意义。您将需要退后一步,了解Android的工作原理。