简体   繁体   中英

xml parsing error in android, shows fatal exception while running

while running the below code Im getting error stating that the application has stopped unexpectedly...in my logcat..it is showing so much error..I have also attached logcat error and i have fatal exception too.... please help....

XMLdemo.java

package com.example.myfirstapplication;

import java.io.IOException;    
import java.io.InputStream;    
import java.util.ArrayList;  
import java.util.Iterator;  

import org.xmlpull.v1.XmlPullParser;  
import org.xmlpull.v1.XmlPullParserException;  
import org.xmlpull.v1.XmlPullParserFactory;  

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

class Product
{

public String name;
public String quantity;
public String color;

  }
  public class XMLDemo extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    XmlPullParserFactory pullParserFactory;
    try {
        pullParserFactory = XmlPullParserFactory.newInstance();
        XmlPullParser parser = pullParserFactory.newPullParser();

            InputStream in_s = getApplicationContext().getAssets().open("temp.xml");
            parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
            parser.setInput(in_s, null);

            parseXML(parser);

    } catch (XmlPullParserException e) {

        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

private void parseXML(XmlPullParser parser) throws XmlPullParserException,IOException
{
    ArrayList<Product> products = null;
    int eventType = parser.getEventType();
    Product currentProduct = null;

    while (eventType != XmlPullParser.END_DOCUMENT){
        String name = null;
        switch (eventType){
            case XmlPullParser.START_DOCUMENT:
                products = new ArrayList();
                break;
            case XmlPullParser.START_TAG:
                name = parser.getName();
                if (name == "product"){
                    currentProduct = new Product();
                } else if (currentProduct != null){
                    if (name == "productname"){
                        currentProduct.name = parser.nextText();
                    } else if (name == "productcolor"){
                        currentProduct.color = parser.nextText();
                    } else if (name == "productquantity"){
                        currentProduct.quantity= parser.nextText();
                    }  
                }
                break;
            case XmlPullParser.END_TAG:
                name = parser.getName();
                if (name.equalsIgnoreCase("product") && currentProduct != null){
                    products.add(currentProduct);
                } 
        }
        eventType = parser.next();
    }

    printProducts(products);
}



private void printProducts(ArrayList<Product> products)
{
    String content = "";
    Iterator<Product> it = products.iterator();
    while(it.hasNext())
    {
        Product currProduct  = it.next();
        content = content + "nnnProduct :" +  currProduct.name + "n";
        content = content + "Quantity :" +  currProduct.quantity + "n";
        content = content + "Color :" +  currProduct.color + "n";

    }

    TextView display = (TextView)findViewById(R.id.info);
    display.setText(content);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}
    }

MY LAYOUT MAIN.XML

<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

 <TextView
    android:id="@+id/info"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="20dp"
    android:text="TextView" />

  </LinearLayout>

android manifest.xml

  <?xml version="1.0" encoding="utf-8"?>
  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myfirstapplication"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.myfirstapplication.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.example.myfirstapplication.Main2Activity"
        android:label="@string/title_activity_main2" >
    </activity>
</application>

</manifest>

LOGCAT ERROR WHILE RUNNING

09-29 19:55:21.378: D/AndroidRuntime(275): Shutting down VM
09-29 19:55:21.378: W/dalvikvm(275): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
09-29 19:55:21.398: E/AndroidRuntime(275): FATAL EXCEPTION: main
09-29 19:55:21.398: E/AndroidRuntime(275): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.myfirstapplication/com.example.myfirstapplication.MainActivity}: java.lang.ClassNotFoundException: com.example.myfirstapplication.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.example.myfirstapplication-1.apk]
09-29 19:55:21.398: E/AndroidRuntime(275):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
09-29 19:55:21.398: E/AndroidRuntime(275):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
09-29 19:55:21.398: E/AndroidRuntime(275):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
09-29 19:55:21.398: E/AndroidRuntime(275):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
09-29 19:55:21.398: E/AndroidRuntime(275):  at android.os.Handler.dispatchMessage(Handler.java:99)
09-29 19:55:21.398: E/AndroidRuntime(275):  at android.os.Looper.loop(Looper.java:123)
09-29 19:55:21.398: E/AndroidRuntime(275):  at android.app.ActivityThread.main(ActivityThread.java:4627)
09-29 19:55:21.398: E/AndroidRuntime(275):  at java.lang.reflect.Method.invokeNative(Native Method)
09-29 19:55:21.398: E/AndroidRuntime(275):  at java.lang.reflect.Method.invoke(Method.java:521)
09-29 19:55:21.398: E/AndroidRuntime(275):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
09-29 19:55:21.398: E/AndroidRuntime(275):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
09-29 19:55:21.398: E/AndroidRuntime(275):  at dalvik.system.NativeStart.main(Native Method)
09-29 19:55:21.398: E/AndroidRuntime(275): Caused by: java.lang.ClassNotFoundException: com.example.myfirstapplication.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.example.myfirstapplication-1.apk]
09-29 19:55:21.398: E/AndroidRuntime(275):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
09-29 19:55:21.398: E/AndroidRuntime(275):  at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
09-29 19:55:21.398: E/AndroidRuntime(275):  at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
09-29 19:55:21.398: E/AndroidRuntime(275):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
09-29 19:55:21.398: E/AndroidRuntime(275):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
09-29 19:55:21.398: E/AndroidRuntime(275):  ... 11 more
09-29 20:12:36.938: D/AndroidRuntime(298): Shutting down VM
09-29 20:12:36.998: W/dalvikvm(298): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
09-29 20:12:37.058: E/AndroidRuntime(298): FATAL EXCEPTION: main
09-29 20:12:37.058: E/AndroidRuntime(298): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.myfirstapplication/com.example.myfirstapplication.MainActivity}: java.lang.ClassNotFoundException: com.example.myfirstapplication.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.example.myfirstapplication-1.apk]
09-29 20:12:37.058: E/AndroidRuntime(298):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
09-29 20:12:37.058: E/AndroidRuntime(298):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
09-29 20:12:37.058: E/AndroidRuntime(298):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
09-29 20:12:37.058: E/AndroidRuntime(298):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
09-29 20:12:37.058: E/AndroidRuntime(298):  at android.os.Handler.dispatchMessage(Handler.java:99)
09-29 20:12:37.058: E/AndroidRuntime(298):  at android.os.Looper.loop(Looper.java:123)
09-29 20:12:37.058: E/AndroidRuntime(298):  at android.app.ActivityThread.main(ActivityThread.java:4627)
09-29 20:12:37.058: E/AndroidRuntime(298):  at java.lang.reflect.Method.invokeNative(Native Method)
09-29 20:12:37.058: E/AndroidRuntime(298):  at java.lang.reflect.Method.invoke(Method.java:521)
09-29 20:12:37.058: E/AndroidRuntime(298):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
09-29 20:12:37.058: E/AndroidRuntime(298):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
09-29 20:12:37.058: E/AndroidRuntime(298):  at dalvik.system.NativeStart.main(Native Method)
09-29 20:12:37.058: E/AndroidRuntime(298): Caused by: java.lang.ClassNotFoundException: com.example.myfirstapplication.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.example.myfirstapplication-1.apk]
09-29 20:12:37.058: E/AndroidRuntime(298):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
09-29 20:12:37.058: E/AndroidRuntime(298):  at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
09-29 20:12:37.058: E/AndroidRuntime(298):  at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
09-29 20:12:37.058: E/AndroidRuntime(298):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
09-29 20:12:37.058: E/AndroidRuntime(298):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
09-29 20:12:37.058: E/AndroidRuntime(298):  ... 11 more

You have not mentioned the correct activity name in your manifest. You have mentioned MainActivity. It should be XMLDemo instead.

Replace com.example.myfirstapplication.MainActivity with com.example.myfirstapplication.XMLDemo and you will be fine. Since your proper activity name is absent from your manifest, that's why it's throwing ClassNotFoundException.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM