From c641ce5d44a984e8173d6fd705c8f0b9f04a4bdc Mon Sep 17 00:00:00 2001 From: HapeLee <63206378+HapeLee@users.noreply.github.com> Date: Fri, 29 May 2026 00:32:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8F=8D=E5=B0=84=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=20mPreferencesDir=20=E6=9C=AA=E6=81=A2=E5=A4=8D?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E5=A4=87=E4=BB=BD=E6=81=A2=E5=A4=8D=E5=90=8E?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=B8=A2=E5=A4=B1=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/io/legado/app/utils/PreferencesExtensions.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/io/legado/app/utils/PreferencesExtensions.kt b/app/src/main/java/io/legado/app/utils/PreferencesExtensions.kt index 9e128e03a..0e948331d 100644 --- a/app/src/main/java/io/legado/app/utils/PreferencesExtensions.kt +++ b/app/src/main/java/io/legado/app/utils/PreferencesExtensions.kt @@ -33,12 +33,17 @@ fun Context.getSharedPreferences( // 获取 ContextImpl。mPreferencesDir变量,该变量保存了数据文件的保存路径 val fieldMPreferencesDir = objMBase.javaClass.getDeclaredField("mPreferencesDir") fieldMPreferencesDir.isAccessible = true + // 保存原始路径 + val originalDir = fieldMPreferencesDir.get(objMBase) // 创建自定义路径 val file = File(dir) // 修改mPreferencesDir变量的值 fieldMPreferencesDir.set(objMBase, file) // 返回修改路径以后的 SharedPreferences :%FILE_PATH%/%fileName%.xml - return getSharedPreferences(fileName, Activity.MODE_PRIVATE) + val sp = getSharedPreferences(fileName, Activity.MODE_PRIVATE) + // 恢复原始路径,避免后续 defaultSharedPreferences 等调用读到错误目录 + fieldMPreferencesDir.set(objMBase, originalDir) + return sp } catch (e: NoSuchFieldException) { e.printOnDebug() } catch (e: IllegalArgumentException) {