【问题标题】:NullPointerException in Android applicationAndroid 应用程序中的 NullPointerException
【发布时间】:2016-09-21 13:04:45
【问题描述】:

我有一个方法由于捕获异常而返回 null 对象。但是,当我尝试检查此对象时,我收到以下错误:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method
'android.content.res.Resources android.content.Context.getResources()' on a
null object reference

我的功能如下:

public static DataPoint getDataFromArray() {
    try {
        return dataPoints[xIndex][yIndex];
    }
    catch (ArrayIndexOutOfBoundsException e) {
        DataPoint dp = null;
        return dp;
    }
}

正在以下代码中检查返回的值:

DataPoint dp = getDataFromArray();

if(dp == null) {
    Toast.makeText(AppContext.getAppContext(), "Out of bounds.", Toast.LENGTH_SHORT).show();
    finish();
}

如果我无法将null 分配给我的DataPoint 对象,那么我应该如何进行这项检查?谢谢!

解析应用程序上下文后,我看到了错误:

java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.myandroid.myapp/com.myandroid.myapp.activities.
DataEntryActivity}: 
java.lang.NullPointerException: Attempt to read from field 
'short com.myandroid.myapp.Constants$DataPoint.status' on a null object reference

这个status 字段是在我提供的代码之后读取的,所以我不确定为什么它没有首先使用finish() 方法销毁该活动。

【问题讨论】:

  • 你的 Context 为空
  • @Piyush 可能是个愚蠢的问题,但为什么呢?
  • 尝试从Application类中检索上下文,我认为命令是Application.getContext() 不太确定,几个月没用Android Studio
  • 查看这里AppContext.getAppContext()

标签: java android exception null


【解决方案1】:

您的应用程序的上下文为空。

因为当你调用:AppContext.getAppContext() 时,上下文还没有设置。

你应该看看这个答案: https://stackoverflow.com/a/21994818/4585226

public class MyApp extends Application {
 private static Context mContext;

    public static MyApp getInstance() {
        return instance;
    }

    public static Context getContext() {
      //  return instance.getApplicationContext();
      return mContext;
    }

    @Override
    public void onCreate() {
        super.onCreate();
    //  instance = this;
     mContext = getApplicationContext();    
    }

【讨论】:

  • 谢谢,我明白了。但是,我现在收到与我的空对象有关的此错误java.lang.NullPointerException: Attempt to read from field 'short com.myapp.$DataPoint.status' on a null object reference,我认为这也可能导致问题...
  • 我在你的问题中没有看到这个错误,你应该添加它。
  • 编辑了帖子:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-27
  • 2011-06-12
  • 1970-01-01
  • 2020-09-06
  • 1970-01-01
相关资源
最近更新 更多