android开发java.lang.NullPointerException问题

酸囝伟1314 2013-07-02 10:02:51
LogCat代码:

07-02 21:51:07.553: E/AndroidRuntime(10854): FATAL EXCEPTION: main
07-02 21:51:07.553: E/AndroidRuntime(10854): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.scut2/com.example.scut2.mapActivity}: java.lang.NullPointerException
07-02 21:51:07.553: E/AndroidRuntime(10854): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1696)
07-02 21:51:07.553: E/AndroidRuntime(10854): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1716)
07-02 21:51:07.553: E/AndroidRuntime(10854): at android.app.ActivityThread.access$1500(ActivityThread.java:124)
07-02 21:51:07.553: E/AndroidRuntime(10854): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:968)
07-02 21:51:07.553: E/AndroidRuntime(10854): at android.os.Handler.dispatchMessage(Handler.java:99)
07-02 21:51:07.553: E/AndroidRuntime(10854): at android.os.Looper.loop(Looper.java:130)
07-02 21:51:07.553: E/AndroidRuntime(10854): at android.app.ActivityThread.main(ActivityThread.java:3806)
07-02 21:51:07.553: E/AndroidRuntime(10854): at java.lang.reflect.Method.invokeNative(Native Method)
07-02 21:51:07.553: E/AndroidRuntime(10854): at java.lang.reflect.Method.invoke(Method.java:507)
07-02 21:51:07.553: E/AndroidRuntime(10854): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
07-02 21:51:07.553: E/AndroidRuntime(10854): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
07-02 21:51:07.553: E/AndroidRuntime(10854): at dalvik.system.NativeStart.main(Native Method)
07-02 21:51:07.553: E/AndroidRuntime(10854): Caused by: java.lang.NullPointerException
07-02 21:51:07.553: E/AndroidRuntime(10854): at android.content.ContextWrapper.getResources(ContextWrapper.java:80)
07-02 21:51:07.553: E/AndroidRuntime(10854): at com.example.scut2.mapBaseActivity.<init>(mapBaseActivity.java:33)
07-02 21:51:07.553: E/AndroidRuntime(10854): at com.example.scut2.mapActivity.addItemClick(mapActivity.java:308)
07-02 21:51:07.553: E/AndroidRuntime(10854): at com.example.scut2.mapActivity.onCreate(mapActivity.java:170)
07-02 21:51:07.553: E/AndroidRuntime(10854): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
07-02 21:51:07.553: E/AndroidRuntime(10854): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1660)
07-02 21:51:07.553: E/AndroidRuntime(10854): ... 11 more

代码:
package com.example.scut2;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import android.R.string;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.Bitmap ;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.map.ItemizedOverlay;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.OverlayItem;
import com.baidu.mapapi.map.PopupClickListener;
import com.baidu.mapapi.map.PopupOverlay;
import com.baidu.platform.comapi.basestruct.GeoPoint;
import com.example.scut2.*;

/*
* 定义并声明创建mapActivity类中所用的覆盖物
*/
public class mapBaseActivity extends Activity{
Resources res = getResources();(这一句就是代码提示的错误)
private Context mContext;
private void setMark(){
mark[0]= res.getDrawable(R.drawable.icon_marka);
mark[1]= res.getDrawable(R.drawable.icon_markb);
mark[2]= res.getDrawable(R.drawable.icon_markc);
mark[3]= res.getDrawable(R.drawable.icon_markd);
mark[4]= res.getDrawable(R.drawable.icon_marke);
}
}
这个类是用来建立一些数据供mapActivity调用时创建的,但是一运行到需要调用这个类的时候就报错,而报错的就是这一句Resources res = getResources();不知道为什么!!!求解救啊!
...全文
974 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
怀君 2016-03-28
  • 打赏
  • 举报
回复
你定义的数组呢 ? mark数组呢 ?
xiaovxiaoa 2016-03-28
  • 打赏
  • 举报
回复
可是我在oncreat中声明的为什么还会报空指针?晕倒
AMinfo 2013-07-03
  • 打赏
  • 举报
回复
Resources res = getResources(); 改为 getApplicationContext().getResources(); 看看
第一滴泪 2013-07-03
  • 打赏
  • 举报
回复
getResources()是ContextWrapper的方法,在activity还没执行oncreate前,就先执行了成员变量的赋值getResources(),估计这时候ContextWrapper类都还没实例吧
  • 打赏
  • 举报
回复
你在onCreate里面去getResources(),在全局变量里获取是会报错的

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧