Jump to content

Archived

This topic is now archived and is closed to further replies.

seito

[probléme]NUllpointer Exception

Recommended Posts

Bonjour, je suis en train de faire un programme pour lire un flux rss,

Eclipse me valdie le code et lors de l'execution, il me sors :

07-28 09:22:31.248: ERROR/AndroidRuntime(275): FATAL EXCEPTION: main
07-28 09:22:31.248: ERROR/AndroidRuntime(275): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mairie/com.mairie.MairieActivity}: java.lang.NullPointerException
07-28 09:22:31.248: ERROR/AndroidRuntime(275):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
07-28 09:22:31.248: ERROR/AndroidRuntime(275):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
07-28 09:22:31.248: ERROR/AndroidRuntime(275):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
07-28 09:22:31.248: ERROR/AndroidRuntime(275):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
07-28 09:22:31.248: ERROR/AndroidRuntime(275):     at android.os.Handler.dispatchMessage(Handler.java:99)
07-28 09:22:31.248: ERROR/AndroidRuntime(275):     at android.os.Looper.loop(Looper.java:123)
07-28 09:22:31.248: ERROR/AndroidRuntime(275):     at android.app.ActivityThread.main(ActivityThread.java:4627)
07-28 09:22:31.248: ERROR/AndroidRuntime(275):     at java.lang.reflect.Method.invokeNative(Native Method)
07-28 09:22:31.248: ERROR/AndroidRuntime(275):     at java.lang.reflect.Method.invoke(Method.java:521)
07-28 09:22:31.248: ERROR/AndroidRuntime(275):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
07-28 09:22:31.248: ERROR/AndroidRuntime(275):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
07-28 09:22:31.248: ERROR/AndroidRuntime(275):     at dalvik.system.NativeStart.main(Native Method)
07-28 09:22:31.248: ERROR/AndroidRuntime(275): Caused by: java.lang.NullPointerException
07-28 09:22:31.248: ERROR/AndroidRuntime(275):     at com.mairie.ParserXMLHandler.startElement(ParserXMLHandler.java:66)
07-28 09:22:31.248: ERROR/AndroidRuntime(275):     at org.apache.harmony.xml.ExpatParser.startElement(ExpatParser.java:146)
07-28 09:22:31.248: ERROR/AndroidRuntime(275):     at org.apache.harmony.xml.ExpatParser.append(Native Method)
07-28 09:22:31.248: ERROR/AndroidRuntime(275):     at org.apache.harmony.xml.ExpatParser.parseFragment(ExpatParser.java:521)
07-28 09:22:31.248: ERROR/AndroidRuntime(275):     at org.apache.harmony.xml.ExpatParser.parseDocument(ExpatParser.java:482)
07-28 09:22:31.248: ERROR/AndroidRuntime(275):     at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:320)
07-28 09:22:31.248: ERROR/AndroidRuntime(275):     at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:277)
07-28 09:22:31.248: ERROR/AndroidRuntime(275):     at javax.xml.parsers.SAXParser.parse(SAXParser.java:392)
07-28 09:22:31.248: ERROR/AndroidRuntime(275):     at javax.xml.parsers.SAXParser.parse(SAXParser.java:189)
07-28 09:22:31.248: ERROR/AndroidRuntime(275):     at com.mairie.ContainerDataActue.getFeeds(ContainerDataActue.java:46)
07-28 09:22:31.248: ERROR/AndroidRuntime(275):     at com.mairie.MairieActivity.onCreate(MairieActivity.java:46)
07-28 09:22:31.248: ERROR/AndroidRuntime(275):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
07-28 09:22:31.248: ERROR/AndroidRuntime(275):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
07-28 09:22:31.248: ERROR/AndroidRuntime(275):     ... 11 more

voilà les lignes citées par LogCat :

main :

ArrayList<FeedActue> feeds=ContainerDataActue.getFeeds();
	for( FeedActue feedActue : feeds)
	{
		Log.e("Actualité", feedActue.toString());
	}
	ListFeedAdapterActue lfa=new ListFeedAdapterActue(this, feeds);
	((ListView)findViewById(R.id.actue)).setAdapter(lfa);

La méthode getFeeds() :

public static ArrayList<FeedActue> getFeeds()
	{
		//on crée la fabrique et le parseur ainsi que la liste pour acceuillir les flux
		SAXParserFactory factory = SAXParserFactory.newInstance();
		SAXParser parseur = null;
		ArrayList<FeedActue> feeds=null;
		try {
			parseur=factory.newSAXParser();
		} catch (ParserConfigurationException e) {
			e.printStackTrace();
		}catch (SAXException e) {
			e.printStackTrace();
		}
		// On défini l'url du fichier xml
		URL url =null;
		try {
			url = new URL("http://seitoworld.fr/feed/");
		} catch (MalformedURLException e) {
			e.printStackTrace();
		}
		DefaultHandler handler = new ParserXMLHandler();
		try {
			parseur.parse(url.openConnection().getInputStream(), handler);
			feeds = ((ParserXMLHandler)handler).getData();
		} catch (SAXException e) {
			e.printStackTrace();
		}catch (IOException e) {
			e.printStackTrace();
		}
		return feeds;

La méthode StartElements:

@Override
public void startElement(String uri, String localName, String name, Attributes attributes) throws SAXException
{

	buffer = new StringBuffer();
	//definition des actions a faire :
	if (localName.equalsIgnoreCase(ITEM)){			
		this.currentFeed = new FeedActue();
		inItem = true;
	}

	// Vous pouvez définir des actions à effectuer pour chaque item rencontré
	if (localName.equalsIgnoreCase(TITLE)){
		// Nothing to do	
	}
	if (localName.equalsIgnoreCase(LINK)){
		// Nothing to do	
	}
	if (localName.equalsIgnoreCase(PUBDATE)){	
		// Nothing to do	
	}
	if (localName.equalsIgnoreCase(CREATOR)){
		// Nothing to do
	}
	if(localName.equalsIgnoreCase(DESCRIPTION)){
		// Nothing to do	
	}
	if (localName.equalsIgnoreCase(ITEM)){		
		feeds.add(currentFeed);
		inItem = false;
	}
}

ça fait deux jours que je cherche et que je ne trouve pas. Est ce que l'un de vous pourrait m'aider ?

merci d'avance

Seito

Share this post


Link to post
Share on other sites

A la vite fait comme.ca...

url est dans un try... donc ce qui suis et qui l utilise devrai etre dans un try... Ou un if (url != null) ...

De plus j ai besoin de dodo mais ca te fait.une piste a creuser...

Share this post


Link to post
Share on other sites

A la vite fait comme.ca...

url est dans un try... donc ce qui suis et qui l utilise devrai etre dans un try... Ou un if (url != null) ...

De plus j ai besoin de dodo mais ca te fait.une piste a creuser...

oui j'y avais pensé mais en fait, c'était juste éclipse qui plantait... je l'ai relancé avec le mac et au final, maintenant ça marche

merci de d'avoir répondu

Share this post


Link to post
Share on other sites





×
×
  • Create New...