我发现程序启动时,报如下的NullPointerException异常:
E/AndroidRuntime(4246): Caused by: java.lang.NullPointerException
E/AndroidRuntime(4246): at android.content.ContextWrapper.getResources(ContextWrapper.java:81)
我的源码如下:
- private OnPageChangeListener mPageChangeListener = new OnPageChangeListener()
- {
- private int bmpW = 0; // 游标图片的宽度
- {
- bmpW = BitmapFactory.decodeResource(MainActivity.this.getResources(),
- R.drawable.tab_line_press).getWidth();
- //....
- }
- //...
- }
查看Android源码(ContextWrapper.java:81),发现是Context的变量mBase为Null了:
- Context mBase;
- //...
- @Override
- public Resources getResources()
- {
- return mBase.getResources();
- }
于是,发现这个做有问题,在变量的声明时,Context还没有传递进来呢!
必须等到OnCreate后,才能使用Context去获取资源(getResources)!

本文介绍了一个启动时出现的NullPointerException问题及解决办法。错误发生在尝试通过未初始化的Context获取资源时。正确的做法是在确保Context可用之后再进行资源获取操作。
606

被折叠的 条评论
为什么被折叠?



