InputStream返回NullPointerException(Java)
以下是获取NullPointerException错误的代码:InputStream返回NullPointerException(Java),java,android,nullpointerexception,inputstream,Java,Android,Nullpointerexception,Inputstream,以下是获取NullPointerException错误的代码: 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): Cau
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
编辑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();}
可能
getAssets()
为空并尝试检查文件twentyone.txt是否存在,如果存在,则尝试输入完整的文件路径并重新运行应用程序 打开的文件没有完整路径,这就是错误的原因。试一试
new File("twentyone.txt").getAbsolutePath()
好的,我知道了。我必须将主要活动的上下文传递给这个类,然后使用
context.getAssets.open(“twentyone.txt”)代码>
对于有相同问题的任何人,请执行以下操作:
将其放入具有活动的类的onCreate函数中:
Context-Context=getApplicationContext()代码>
将上下文传递给新类的函数(在我的例子“process(stringa,context)”中)
然后在流程函数中键入:
InputStream is = context.getAssets().open("twentyone.txt");
我花了4个小时才想出这么愚蠢的事情。getAssets()
可能是空的。如何解决这个问题?my assets文件夹中有上述文件..很难说没有看到更多代码,但首先要通过使用调试器或查看堆栈跟踪来确定getAssets()
是否确实为空。然后找出它为空的原因。请提供完整的代码getAssets()是什么?检查它是否为null或notopen stream使用绝对文件名great,然后您必须定义该文件是否存在。可能getAssets()为空。。如何纠正这一点?顺便说一句,我正在为android编写代码。