如果我使用输入流来访问资源文件夹中的文件,如
InputStream is = getAssets().open("errorMapperConfig.xml");
我得到NullPointerException
,帮我解决这个问题。
答案 0 :(得分:2)
将Context
变量用于getAssetes();
AssetManager mngr = myContext.getAssets();
InputStream is = mngr.open("errorMapperConfig.xml");
答案 1 :(得分:0)
private void readFiles() {
try
{
AssetManager assetManager = getAssets();
InputStream inputStream;
inputStream = assetManager.open("webpages/how-to-use.html");
String detail=loadTextFile(inputStream);
webView.loadData(detail, "text/html", "utf-8");
}
catch(Exception e){
Log.e("Exception ","======>"+e.toString());
}
}
public String loadTextFile(InputStream inputStream) throws IOException {
ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
byte[] bytes = new byte[4096];
int len = 0;
while ((len = inputStream.read(bytes)) > 0)
byteStream.write(bytes, 0, len);
return new String(byteStream.toByteArray(), "UTF8");
}
我希望这会有所帮助。谢谢!!
答案 2 :(得分:0)
您必须将主要活动的上下文传递给此类。将以下代码放在具有以下活动的类的onCreate()
方法中:
Context context = getApplicationContext();
然后,替换你的代码:
InputStream is = context.getAssets().open("errorMapperConfig.xml");
不要忘记您必须在项目根目录中名为errorMapperConfig.xml
的文件夹中包含名为assets
的文件。
请参阅getApplicationContext()的文档。