Android 从SharedReferences获取保存的url时,应用程序崩溃

Android 从SharedReferences获取保存的url时,应用程序崩溃,android,Android,我的寄存器按钮通过Void doin background调用我的register()函数。这样,我的应用程序崩溃了,但当使用代码中定义的静态参数URL时,一切正常 我做错了什么 static void register(final Context context, final String regId, final String appName) { Log.i(TAG, "registering device (regId = " + regId + ")"); Shared

我的寄存器
按钮
通过
Void doin background
调用我的
register()
函数。这样,我的应用程序崩溃了,但当使用代码中定义的静态参数URL时,一切正常

我做错了什么

static void register(final Context context, final String regId, final String appName) {
    Log.i(TAG, "registering device (regId = " + regId + ")");
    SharedPreferences SERVER_URL = context.getSharedPreferences("URL" , Context.MODE_PRIVATE);

    String serverUrl = SERVER_URL + "register.php";
    Map<String, String> params = new HashMap<String, String>();
    params.put("regId", regId);
    params.put("appName", appName); ...
}
静态无效寄存器(最终上下文、最终字符串regId、最终字符串appName){
Log.i(标签,“注册设备(regId=“+regId+”));
SharedReferences服务器\u URL=context.getSharedReferences(“URL”,context.MODE\u PRIVATE);
字符串serverUrl=SERVER_URL+“register.php”;
Map params=新的HashMap();
参数put(“regId”,regId);
参数put(“appName”,appName)。。。
}

这里的
服务器URL
共享引用
实例,我们需要使用
getString()
方法从中获取指定值,请尝试以下操作

static void register(final Context context, final String regId, final String appName) {
    Log.i(TAG, "registering device (regId = " + regId + ")");
    SharedPreferences SERVER_URL = context.getSharedPreferences("URL" , Context.MODE_PRIVATE);

    String serverUrl = SERVER_URL.getString("replace_your_key_value",null) + "/register.php";
    Map<String, String> params = new HashMap<String, String>();
    params.put("regId", regId);
    params.put("appName", appName); ...
静态无效寄存器(最终上下文、最终字符串regId、最终字符串appName){
Log.i(标签,“注册设备(regId=“+regId+”));
SharedReferences服务器\u URL=context.getSharedReferences(“URL”,context.MODE\u PRIVATE);
String serverUrl=SERVER\u URL.getString(“替换您的密钥值”,null)+“/register.php”;
Map params=新的HashMap();
参数put(“regId”,regId);
参数put(“appName”,appName)。。。
试试:

而不是在代码中

SharedPreferences SERVER_URL = context.getSharedPreferences("URL" , Context.MODE_PRIVATE);
String serverUrl = SERVER_URL + "register.php";

如何将url存储到首选项中?发布该代码。发布logcat错误。我有类PreferenceConnector,函数:
public static void writeString(上下文上下文,字符串键,字符串值){getEditor(上下文)。putString(键,值)。commit();}
LogCat没有显示任何错误。只是E-1很可能:您传递给函数的
上下文
不是有效的
上下文
。您可能会错过
/
,请检查我的编辑,我在
register.php
之前添加了它。不,我没有,因为在SharedRefs中,我用
/
保存了url,请检查您的首选项名称是否为正确?或者在我从SharedRefers打印文本视图时发布当前代码,函数为:
SharedReferences pref=context.getSharedReferences(“URL”,context.MODE_PRIVATE);
结果正确。您的示例已尝试,但不起作用。我将您的代码更改为:`SharedReferences pref=PreferenceManager.getDefaultSharedReferences(context);String serverUrl=prefs.getString(“url”,null)+“register.php”;`并且没有结果。
SharedPreferences SERVER_URL = context.getSharedPreferences("URL" , Context.MODE_PRIVATE);
String serverUrl = SERVER_URL + "register.php";