Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建对象时出现NullPointerException_Java_Android - Fatal编程技术网

Java 创建对象时出现NullPointerException

Java 创建对象时出现NullPointerException,java,android,Java,Android,我有这样一个类,它的构造函数定义如下。 问题是当我尝试创建它的对象时,我得到了java.lang.NullPointerException public class someClass extends Activity { public static String sharedPreferencesFileName = "myShared"; public SharedPreferences sharedPreferences = null; public someCl

我有这样一个类,它的构造函数定义如下。 问题是当我尝试创建它的对象时,我得到了
java.lang.NullPointerException

public class someClass extends Activity {
    public static String sharedPreferencesFileName = "myShared";
    public SharedPreferences sharedPreferences = null;

    public someClass() {
        this.sharedPreferences = getSharedPreferences(sharedPreferencesFileName,0);
    }
我是从另一个班级打电话来的

someClass someObj = new someClass();

删除您的构造函数并使用
onCreate()
,因为在执行android活动时,构造函数不是典型的用法

public class someClass extends Activity {
    public static String sharedPreferencesFileName = "myShared";
    public SharedPreferences sharedPreferences = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.sharedPreferences = getSharedPreferences(sharedPreferencesFileName,0);
    }

someClass
是普通的java类吗

然后无需扩展活动,使用类构造函数在
someClass
表单活动中获取上下文,以访问
getSharedReferences
作为:

public someClass(Context mContext){
        this.sharedPreferences = mContext.getSharedPreferences(s
                     haredPreferencesFileName,0);

}

我看到您的类扩展了
活动
。它有自己的生命周期。不要使用默认构造函数(或任何构造函数)初始化变量。使用
onCreate
方法执行此操作。为什么您的对象会扩展活动?当我创建此类的对象时是否会调用
onCreate()
。@Maven您根本不应该创建活动的对象,当您使用intent@Maven,当通过startActivity(intent)使用启动
someClass
活动时,将调用该类。实际上,该类不是活动。如果我不从活动中扩展它,我将得到
无法解决GetSharedReferences
错误。这是我从那里扩展它的唯一原因。什么是
public类someClass扩展活动
呢?如果我不从活动中扩展它,我得到
无法解决GetSharedReferences
错误。这是我从那里扩展它的唯一原因。