Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.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 活动响应方法中首选项管理器上的Google Play控制台崩溃报告_Java_Android_Sharedpreferences - Fatal编程技术网

Java 活动响应方法中首选项管理器上的Google Play控制台崩溃报告

Java 活动响应方法中首选项管理器上的Google Play控制台崩溃报告,java,android,sharedpreferences,Java,Android,Sharedpreferences,Google Play控制台崩溃报告错误: java.lang.NullPointerException: at in.abc.abc.abc.abc.Event_List$2.onResponse (Event_List.java:119) at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run (ExecutorCallAdapterFactory.java:70) at an

Google Play控制台崩溃报告错误:

java.lang.NullPointerException: 
    at in.abc.abc.abc.abc.Event_List$2.onResponse (Event_List.java:119)
      at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run (ExecutorCallAdapterFactory.java:70)
      at android.os.Handler.handleCallback (Handler.java:794)
      at android.os.Handler.dispatchMessage (Handler.java:99)
      at android.os.Looper.loop (Looper.java:176)
      at android.app.ActivityThread.main (ActivityThread.java:6635)
      at java.lang.reflect.Method.invoke (Native Method)
      at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:547)
      at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:823)
活动:

PrefManager prefManager;

  @Override
protected void onCreate(Bundle savedInstanceState)
{
    prefManager = new PrefManager(Event_List.this);

    getAllEvents();
}

private void getAllEvents()
{       
        getAllEvents.enqueue(new Callback<Events>() {
            @Override
            public void onResponse(Call<Events> call, Response<Events> response)
            {
                if(!response.isSuccessful())
                {
                    if (response.code() == 400 || response.code() == 401 )
                    {
                        prefManager.clear(); 
                    }

                    Toast.makeText(Event_List.this, "Please try again", Toast.LENGTH_SHORT).show();
                    return;
                }
            }

        });
    }
}
在运行时,我在google play控制台中为pref manager获取此错误。 任何人都可以建议在project中使用preference manager的正确方法吗?

创建类:

public class MySharedPref {
    public static SharedPreferences sharedPreferences;
    Context context;
    SharedPreferences.Editor editor;

    public String getCountry() {
        return sharedPreferences.getString("COUNTRY","");
    }

    public void setCountry(String country) {
        this.country = country;
        insert("COUNTRY",country);
    }
// Instantiate constructor
    public MySharedPref(Context context)
    {
        this.context = context;
        sharedPreferences = context.getSharedPreferences("MY_PREF", Context.MODE_PRIVATE);
        editor = sharedPreferences.edit();
    }

    public void insert(String key, String value) {
        editor.putString(key, value);
        editor.apply();
    }

    public void clear()
    {
        editor.clear();
        editor.commit();
    }
}
main活动

    MySharedPref sharedPref;
    String country = "";
    private static final String[] COUNTRIES = new String[] {
        "Belgium", "France", "Italy", "Germany", "Spain"};
     @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            sharedPref = new MySharedPref(MainActivity.this);
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_dropdown_item_1line, COUNTRIES);
        AutoCompleteTextView textView = (AutoCompleteTextView)
                findViewById(R.id.countries_list);
        textView.setAdapter(adapter);
    materialButton = findViewById(R.id.materialButton);
    if (sharedPref.getCountry()!=null) {
                textView.setText(sharedPref.getCountry());
            }
textView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                String selection = (String) adapterView.getItemAtPosition(i);
                sharedPref.setCountry(selection);
  }
        });
    materialButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    sharedPref.clear();
    });
MySharedPref-sharedPref;
字符串country=“”;
私有静态最终字符串[]国家/地区=新字符串[]{
“比利时”、“法国”、“意大利”、“德国”、“西班牙”};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sharedPref=newmySharedPref(MainActivity.this);
ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.simple_下拉列表_项目_1行,国家/地区);
AutoCompleteTextView文本视图=(AutoCompleteTextView)
findViewById(R.id.国家/地区列表);
setAdapter(适配器);
materialButton=findViewById(R.id.materialButton);
如果(sharedPref.getCountry()!=null){
textView.setText(sharedPref.getCountry());
}
textView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
公共无效onItemClick(AdapterView AdapterView、View视图、int i、long l){
字符串选择=(字符串)adapterView.getItemAtPosition(i);
sharedPref.setCountry(选择);
}
});
materialButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
sharedPref.clear();
});

但是已经在构造函数中完成了,我们正在使用编辑器。commit()可以吗。实际上它必须正常工作。让我编辑我的代码。检查您是否已经完成了所有操作。如果您发现答案有用,请接受并投票,这样它将帮助其他同事。
    MySharedPref sharedPref;
    String country = "";
    private static final String[] COUNTRIES = new String[] {
        "Belgium", "France", "Italy", "Germany", "Spain"};
     @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            sharedPref = new MySharedPref(MainActivity.this);
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_dropdown_item_1line, COUNTRIES);
        AutoCompleteTextView textView = (AutoCompleteTextView)
                findViewById(R.id.countries_list);
        textView.setAdapter(adapter);
    materialButton = findViewById(R.id.materialButton);
    if (sharedPref.getCountry()!=null) {
                textView.setText(sharedPref.getCountry());
            }
textView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                String selection = (String) adapterView.getItemAtPosition(i);
                sharedPref.setCountry(selection);
  }
        });
    materialButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    sharedPref.clear();
    });