2013-03-19 3 views
0

Вот код, который получает ошибку NullPointerException:InputStream возвращение NullPointerException (Java)

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

Что может быть неправильно?

* Изменить: printStackTrace

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

Edit 2: Код до исключения:

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()' может быть пустым –

+0

как решить это? моя папка с файлами имеет указанный файл. –

+0

Трудно сказать, не видя больше кода, но сначала узнайте, действительно ли 'getAssets()' действительно является нулевым, используя отладчик или просматривая трассировку стека. Затем выясните, почему он равен нулю. –

ответ

2

ОК, я понял. Я должен был передать контекст основной деятельности этого класса, а затем использовать context.getAssets.open("twentyone.txt");

Для тех, кто имеет такую ​​же проблему, сделайте следующее: Поместите это в OnCreate функции класса с активностью: Context context=getApplicationContext();

контекст

Pass для функции нового класса (в моем случае «процесс (String а, контекст Context)») Затем введите это в функции процесса:

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

Взял меня 4 часа, чтобы понять такую ​​глупость, из ,

0

Может быть getAssets() является недействительным и попытаться проверить, существует ли файл twentyone.txt, если он существует, то попробуйте ввести полный путь к файлу и заново запустить приложение!

+0

Файл существует. возможно getAssets() имеет значение null .. Как исправить это? Я кодирую андроид BTW. –

-1

Файл, который вы открываете, не имеет полного пути, поэтому ошибка. Попробуйте

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

Что мне делать? –

+0

открытый поток с использованием абсолютного имени файла – 2013-03-19 18:28:11

+0

Что это значит –