Android 某些手机上不存在共享首选项路径?

Android 某些手机上不存在共享首选项路径?,android,sharedpreferences,Android,Sharedpreferences,Android上的默认共享首选项路径是 /data/data/package_name/shared_prefs/package_name_preferences.xml 在我的应用程序中,我可以选择将此文件备份到SD卡。 但在三星Galaxy S手机上,似乎没有类似的路径或文件 /data/data/package_name/.. 一位用户向我报告说,他在备份时出错 如果我检查错误,我可以看到: /data/data/xxx.xxxx.xxxx/shared_prefs/xxx.xxxx.

Android上的默认共享首选项路径是

/data/data/package_name/shared_prefs/package_name_preferences.xml
在我的应用程序中,我可以选择将此文件备份到SD卡。 但在三星Galaxy S手机上,似乎没有类似的路径或文件

/data/data/package_name/..
一位用户向我报告说,他在备份时出错

如果我检查错误,我可以看到:

/data/data/xxx.xxxx.xxxx/shared_prefs/xxx.xxxx.xxxx_preferences.xml (No such file or directory)
这怎么会发生

以下是我创建路径的代码:

Environment.getDataDirectory().toString() + "/data/xxx.xxxx.xxxx/shared_pref/xxx.xxxx.xxxxx_preferences.xml"

您是否考虑过使用安卓云备份重新实现它,以便备份到云而不是SD卡


你不应该在你的应用程序中使用这样的绝对文件路径,因为并非所有安卓安装都使用相同的路径

尝试使用:SharedReferences设置=GetSharedReferences(xxx.xxxx.xxxx_preferences.xml,0)


这将使用相对寻址而不是绝对寻址来访问您的共享首选项,应该可以解决您的问题。

我刚刚尝试像下面这样获取共享首选项的路径。这对我来说很有用

File f = getDatabasePath("MyPrefsFile.xml");

if (f != null)
    Log.i("TAG", f.getAbsolutePath());

谢谢,但我需要一条绝对路径。我将SharedReferences备份到SD卡。GetSharedReferences无法解决我的问题,因为我无法获取路径。在Android安装上,SharedReference路径始终位于同一路径中。。。就我所知!这个问题是重复的。检查我的答案那里的三星路径。