You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在含ProGuard的模块中使用DataStore Preference遇类找不到错误

解决DataStore Preference在ProGuard下找不到类的问题

问题描述

在集成了ProGuard的模块中使用DataStore Preference时,出现错误:未找到类"androidx.datastore.preferences.PreferenceDataStoreDelegateKt",添加的ProGuard规则未解决问题。

原规则如下:

# DataStore
-dontwarn androidx.datastore.core.DataStore.*
 -keep class androidx.datastore.preferences.core.* { *; }
 -keep class androidx.datastore.DataStoreDelegateKt { *; }
 -keep class androidx.datastore.preferences.core.PreferencesKeys { *; }
 -keep class androidx.datastore.*.** {*;}
 -keepclassmembers class * extends androidx.datastore.preferences.core.* {
     <fields>;
     <methods>;
     <init>();
 }

解决方案

问题出在原规则没有明确保留PreferenceDataStoreDelegateKt类,这个类属于androidx.datastore.preferences包而非androidx.datastore根包。替换为以下ProGuard规则即可:

# DataStore Preferences 相关保留规则
-keep class androidx.datastore.preferences.PreferenceDataStoreDelegateKt { *; }
-keep class androidx.datastore.preferences.core.** { *; }
-keep class androidx.datastore.core.** { *; }
-dontwarn androidx.datastore.**

规则说明

  • -keep class androidx.datastore.preferences.PreferenceDataStoreDelegateKt { *; }:直接保留报错的目标类,避免被ProGuard混淆或移除
  • -keep class androidx.datastore.preferences.core.** { *; }:保留Preferences相关的核心类,确保键值操作逻辑正常
  • -keep class androidx.datastore.core.** { *; }:保留DataStore核心框架类,保证底层存储逻辑不被破坏
  • -dontwarn androidx.datastore.**:忽略DataStore相关的编译警告,避免未引用代码触发编译异常

内容的提问来源于stack exchange,提问作者Tarif Chakder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 21:39:49