Android:无法为SharedPreferences文件创建目录

我试图通过另一个应用程序编辑一个应用程序的SharedPreferences ,我的代码是这样的

try {
Context plutoContext = getApplicationContext().createPackageContext("me.test",Context.MODE_WORLD_WRITEABLE);
SharedPreferences plutoPreferences = PreferenceManager.getDefaultSharedPreferences(plutoContext);
Editor plutoPrefEditor = plutoPreferences.edit();
plutoPrefEditor.putString("country", "India");
plutoPrefEditor.commit();
}

我收到一个错误

E/SharedPreferencesImpl( 304): Couldn't create directory for SharedPreferences file /data/data/me.test/shared_prefs/me.test_preferences.xml

其中me.test是我在me.test中的另一个项目。我可以编辑并检索SharedPreferences ,而不会感到痛苦

我在Nexus S android 4.0.4(三星)上测试它,任何人都可以帮助我


您需要在AndroidManifest.xml中添加权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

我和你有同样的问题,我用上面的解决方案解决了它。


只需在这个应用程序中使用不同的包名。 这将在不同的目录中创建首选项。


顺便说一句,(它与问题无关,但是以任何方式)错误地使用了createPackageContext()方法。 您传递MODE_WORLD_WRITEABLE标志,其值为2并等于CONTEXT_IGNORE_SECURITY标志,因此这将被逻辑,恕我直言解释错误。

链接地址: http://www.djcxy.com/p/62827.html

上一篇: Android : Couldn't create directory for SharedPreferences file

下一篇: How can I reload a class definition in ipython