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

Android Kotlin PreferenceDataStore初始化NoClassDefFoundError求助

问题原因与解决办法

核心原因分析

出现NoClassDefFoundError本质是运行时找不到DataStore相关的Kotlin委托类,在Unity集成Android的环境里,常见触发场景有这几种:

  • Unity的Gradle构建流程未正确将DataStore依赖打包进最终APK,哪怕模块build.gradle里声明了依赖,Unity默认构建逻辑可能忽略部分Androidx库。
  • 项目存在Androidx库版本冲突,比如旧版本的core-ktx或coroutines与DataStore 1.0.0不兼容,导致类加载链路断裂。
  • 混淆/R8压缩规则剔除了DataStore核心类,或者Kotlin版本不达标(DataStore 1.0.0要求Kotlin≥1.5.0)。

分步解决办法

1. 强制Unity打包DataStore依赖

  • 开启Unity的Custom Gradle Template:进入Player Settings > Publishing Settings > Build,勾选该选项生成mainTemplate.gradle文件。
  • 在mainTemplate.gradle的dependencies块中手动添加DataStore依赖,确保是implementation范围:
    implementation("androidx.datastore:datastore-preferences:1.0.0")
    implementation("androidx.datastore:datastore:1.0.0")
    implementation("androidx.core:core-ktx:1.7.0")
    
  • 同步后执行Unity的Refresh External Libraries,让Unity重新识别依赖。

2. 解决版本冲突

  • 在mainTemplate.gradle的configurations.all块中添加强制版本规则,避免依赖拉取不一致:
    configurations.all {
        resolutionStrategy {
            force 'androidx.datastore:datastore-preferences:1.0.0'
            force 'androidx.datastore:datastore:1.0.0'
            force 'androidx.core:core-ktx:1.7.0'
            force 'org.jetbrains.kotlin:kotlin-stdlib:1.5.31'
        }
    }
    

3. 修复混淆/压缩问题

  • 如果开启了混淆,在proguard-user.txt中添加以下规则,保留DataStore和Kotlin协程相关类:
    -keep class androidx.datastore.** { *; }
    -keep class kotlinx.coroutines.** { *; }
    -keep class kotlinx.serialization.** { *; }
    -keepnames class kotlinx.coroutines.** { *; }
    
  • 暂时关闭R8压缩测试,若问题消失,说明是R8规则需要调整,确保上述类不被优化剔除。

4. 直接导入AAR包(兜底方案)

  • 下载datastore-preferences-1.0.0.aar、datastore-1.0.0.aar和对应版本的core-ktx.aar,放到Unity项目的Assets/Plugins/Android目录下。Unity构建时会直接将这些本地包打包进APK,绕过Gradle依赖同步的问题。

5. 确认Kotlin版本达标

  • 在mainTemplate.gradle的buildscript块中指定符合要求的Kotlin版本:
    buildscript {
        ext.kotlin_version = '1.5.31'
        dependencies {
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 05:50:20