2013-03-19 2 views
0

Voici le code qui obtient l'erreur NullPointerException:InputStream NullPointerException retour (Java)

InputStream is = getAssets().open("twentyone.txt"); 
InputStreamReader iz=new InputStreamReader(is); 
BufferedReader br = new BufferedReader(iz); 

Ce qui pourrait aller mal?

* Edit: le printStackTrace

03-19 18:20:18.662: E/AndroidRuntime(929): Caused by: java.lang.NullPointerException 

Edit 2: Code à l'exception:

public class ListViewAa3 extends ListViewA{ 



public String[] process(String cti)throws IOException{ 
    String ctid=cti; 
    Log.d("Outside try invoked","tag1"); 
    try{ 
     Log.d("beginning of try invoked","tag2"); 
     try{ 
    InputStream is = getAssets().open("USCOUNTIES.txt"); 
    InputStreamReader iz=new InputStreamReader(is); 
    BufferedReader br = new BufferedReader(iz);}catch(Exception e){e.printStackTrace();} 
+2

'getAssets()' pourrait être nul –

+0

comment résoudre ce problème? mon dossier d'actifs a le dit fichier .. –

+0

Difficile à dire sans voir plus de code, mais d'abord savoir si 'getAssets()' est en effet null en utilisant un débogueur ou en regardant la trace de la pile. Ensuite, découvrez pourquoi c'est nul. –

Répondre

2

OK, je l'ai eu. Je devais passer le contexte de l'activité principale de cette classe, puis utilisez context.getAssets.open("twentyone.txt");

Pour toute personne qui a le même problème, faites ceci: Mettre cela dans la fonction onCreate de la classe avec l'activité: Context context=getApplicationContext();

contexte de passe à la nouvelle fonction de la classe (dans mon cas « processus (chaîne a, contexte de contexte) ») Ensuite, tapez ceci dans la fonction de processus:

InputStream is = context.getAssets().open("twentyone.txt"); 

Il m'a fallu 4 heures pour comprendre une telle chose stupide à .

0

Peut-être getAssets() est nulle et essayer de vérifier si existe twentyone.txt de fichier, si elle existe, essayez d'entrer le chemin complet du fichier et relancez votre application!

+0

le fichier existe. peut-être getAssets() est null .. Comment corriger cela? Je code pour Android BTW. –

-1

Le fichier que vous ouvrez n'a pas le chemin d'accès complet, c'est pourquoi l'erreur. Essayez

new File("twentyone.txt").getAbsolutePath() 
+0

Que dois-je faire? –

+0

flux ouvert en utilisant le nom de fichier absolu –

+0

Qu'est-ce que cela signifie –