java - getResources() 上的 nullPoint 异常

标签 java android

我在 getResources() 方法上遇到 nullPoint 异常。我从另一个类(class)开始以下 Activity :

Intent intent = new Intent(getActivity(), FooActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

从调用的 activity 中,我设置了非 Activity 类使用的上下文。

class FooActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    [...]
    Display display  = new Display(...);
    display.setContext(this.getApplicationContext());
  }
}

使用getResources()方法的类:

class Display{
   private static Context context;

   public Display(...){ } 

   public void doSomething(){
     **** NullPoint exception Row ****
    Bitmap bitmpa = BitmapFactory.decodeResource(context.getResources(), R.drawable.custom_marker);
   }

   public void setContext(Context context) {
     if (context == null)
      this.context = context;
    }
}

我的 Logcat:

08-24 20:18:46.656: E/AndroidRuntime(10526): FATAL EXCEPTION: main
08-24 20:18:46.656: E/AndroidRuntime(10526): java.lang.NullPointerException
08-24 20:18:46.656: E/AndroidRuntime(10526):    at com.graphic.core.Display.doSomething(Display.java:43)
android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
08-24 20:18:46.656: E/AndroidRuntime(10526):    at android.os.Handler.dispatchMessage(Handler.java:99)
08-24 20:18:46.656: E/AndroidRuntime(10526):    at android.os.Looper.loop(Looper.java:137)
08-24 20:18:46.656: E/AndroidRuntime(10526):    at android.app.ActivityThread.main(ActivityThread.java:4895)
08-24 20:18:46.656: E/AndroidRuntime(10526):    at java.lang.reflect.Method.invokeNative(Native Method)
08-24 20:18:46.656: E/AndroidRuntime(10526):    at java.lang.reflect.Method.invoke(Method.java:511)
08-24 20:18:46.656: E/AndroidRuntime(10526):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:994)
08-24 20:18:46.656: E/AndroidRuntime(10526):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761)
08-24 20:18:46.656: E/AndroidRuntime(10526):    at dalvik.system.NativeStart.main(Native Method)

是否上下文设置不正确,导致 nullPoint?

最佳答案

将上下文的初始化添加到构造函数中,如下所示:

public Display(Context context){ 
       this.context = context;
   } 

关于java - getResources() 上的 nullPoint 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25474914/

相关文章:

java - Auth0 的通用身份验证不允许注销

安卓 CamcorderProfile.hasProfile NoSuchMethodError

android - 如何摆脱 Android N 上 RemoteInput 通知的进度指示器?

Android:访问硬件相机预览帧数据而不绘制它们

java - 如何处理屏幕方向变化

Java : Bound mismatch error

java - 如何根据用户登录隐藏某些功能?

Java 泛型类 < ?扩展接口(interface) > 作为参数

操作栏中的 Android 搜索按钮和搜索字段

android - RecyclerView 滚动与 ScrollView 冲突