【问题标题】:Android: Cannot write SharedPreferences [duplicate]Android:无法写入 SharedPreferences [重复]
【发布时间】:2018-03-04 08:10:10
【问题描述】:

经过大量研究,我最终决定在这里发布以下问题。 对于一个大学项目,我想通过 SharedPreferences 保存我的应用设置。 但是无论我做什么都行不通。

对于一个简单的测试,我尝试在我的主要活动的 oncreate 方法中编写一些测试数据,如下所示:

    SharedPreferences prefs = this.getSharedPreferences("Test", 0);
    SharedPreferences.Editor editor = prefs.edit();
    editor.putBoolean("Test", true);
    editor.commit();

当我在调试模式下检查 prefs 对象时,它会显示应该创建文件的路径:/data/user/0/.../shared_prefs/Test.xml

但是当我在手机上导航到那里时,它不在那里。

我使用带有 Android 版本 7 的 Galaxy S6 作为测试设备,并且 我必须补充一点,我是 Android 编程的完整初学者。 你能给我指个方向吗?

【问题讨论】:

    标签: android android-sharedpreferences


    【解决方案1】:

    从 Android Studio 中,启动 Android Device Monitor,转到文件资源管理器,然后浏览“/data/data//shared_prefs/”。您会在那里找到 XML……您也可以复制它以供检查。

    如果您的设备没有 root 权限,则无法直接从 Android Studio 执行此操作。但是,只要您的应用程序是调试版本,您就可以使用 adb shell 访问该文件。

    adb shell
    run-as your.app.id`
    chmod 777 shared_prefs/your.app.id_preferences.xml
    exit # return to default user
    cp /data/data/your.app.id/shared_prefs/your.app.id_preferences.xml /sdcard
    

    之后,您可以使用 adb 从 /sdcard 目录中提取文件。

    正如已经回答的here

    【讨论】:

    • 如果您发现自己说“正如 [此处] 已回答”,这表明您需要将此问题标记为重复问题,而不是回答。以后,请这样做。
    • 会的。感谢您的建议。
    猜你喜欢
    • 2014-07-12
    • 2013-07-12
    • 1970-01-01
    • 1970-01-01
    • 2014-06-12
    • 2018-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多