我的课程活动中有这个功能:
private Bitmap getBitmapFromAsset(String strName) {
AssetManager assetManager =this.getAssets();
InputStream istr = null;
try {
istr = assetManager.open(strName);
} catch (IOException e) {
e.printStackTrace();
}
Bitmap bitmap = BitmapFactory.decodeStream(istr);
return bitmap;
}
这个函数是在公共类Game1中扩展Activity
但是我得到了nullpointer异常:
AssetManager assetManager = this.getAssets();
Caused by: java.lang.NullPointerException at packagename.Game1.getBitmapFromAsset
我该怎么办?
答案 0 :(得分:0)
首先创建一个上下文,
Context mTestAppContext = getContext().createPackageContext("com.project.test",
Context.CONTEXT_IGNORE_SECURITY);
这里,使用您的包名而不是" com.project.test"。并使用上面的上下文而不是"这个"如下所示,
AssetManager assetManager = mTestAppContext.getAssets();
希望以上可以提供帮助。
答案 1 :(得分:0)
创建活动后,您需要致电getBitmapFromAsset()
。
如果您在创建活动之前调用它,那么它将提供NullPointerException
。
然后代码 -
AssetManager assetManager = this.getAssets();
此处this = getActivity()
因此为空。