seito Posté(e) 28 juillet 2011 Share Posté(e) 28 juillet 2011 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
TecKnologikS Posté(e) 30 juillet 2011 Share Posté(e) 30 juillet 2011 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... Lien vers le commentaire Partager sur d’autres sites More sharing options...
seito Posté(e) 1 août 2011 Auteur Share Posté(e) 1 août 2011 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.