In your settings.xml, you have:
<EditTextPreference
android:key="@id/pref_key_apiBaseUri"
android:title="@string/pref_apiBaseUri_title"
android:defaultValue="@string/pref_apiBaseUri_default"
android:persistent="true"
android:inputType="text"
android:singleLine="true" />
You must specify a string for key, as the docs for android:key say:
This attribute is required for preferences that persist a data value. It specifies the unique key (a string) the system uses when saving this setting's value in the SharedPreferences.
It seems that your pref_key_apiBaseUri is an empty String. Change it to a valid String and move to strings.xml:
<string name="pref_key_apiBaseUri">KEY</string>
then use as:
<EditTextPreference
android:key="@string/pref_key_apiBaseUri"
...
OR keep it as it is, and just add +
in front of id tag, which will create id which in turn will be used as key:
<EditTextPreference
android:key="@+id/pref_key_apiBaseUri"
...