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

Android Kotlin环境下Realm数据库入门及初始化问题求助

Android Kotlin项目中正确配置Realm依赖及初始化步骤

以下是经过验证的Realm依赖配置流程,按步骤操作即可解决导入和初始化报错问题:

一、根目录项目级构建文件配置

根据你使用的构建脚本语言(Groovy/KTS)选择对应代码:

Groovy版本(build.gradle)

buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        // 请确保版本号与后续模块级依赖一致
        classpath "io.realm:realm-gradle-plugin:10.15.1"
    }
}

plugins {
    id 'com.android.application' version '7.4.2' apply false
    id 'org.jetbrains.kotlin.android' version '1.8.0' apply false
}

KTS版本(build.gradle.kts)

buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath("io.realm:realm-gradle-plugin:10.15.1")
    }
}

plugins {
    id("com.android.application") version "7.4.2" apply false
    id("org.jetbrains.kotlin.android") version "1.8.0" apply false
}

二、App模块级构建文件配置

同样区分构建脚本语言:

Groovy版本(app/build.gradle)

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
    // 必须添加Realm插件,顺序放在Android和Kotlin插件之后
    id 'realm-android'
}

android {
    namespace 'com.yourpackage.name'
    compileSdk 33

    defaultConfig {
        applicationId "com.yourpackage.name"
        minSdk 21 // Realm 10.x要求最低21,低于此需降级Realm版本
        targetSdk 33
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
}

dependencies {
    implementation "io.realm:realm-android-library:10.15.1"
    implementation "io.realm:realm-kotlin-extensions:10.15.1" // Kotlin扩展可选,推荐添加
}

KTS版本(app/build.gradle.kts)

plugins {
    id("com.android.application")
    id("org.jetbrains.kotlin.android")
    id("realm-android")
}

android {
    namespace = "com.yourpackage.name"
    compileSdk = 33

    defaultConfig {
        applicationId = "com.yourpackage.name"
        minSdk = 21
        targetSdk = 33
        versionCode = 1
        versionName = "1.0"

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = "1.8"
    }
}

dependencies {
    implementation("io.realm:realm-android-library:10.15.1")
    implementation("io.realm:realm-kotlin-extensions:10.15.1")
}

三、Application类初始化Realm

  1. 创建自定义Application类:
import android.app.Application
import io.realm.Realm
import io.realm.RealmConfiguration

class MyApp : Application() {
    override fun onCreate() {
        super.onCreate()
        // 初始化Realm核心
        Realm.init(this)
        // 配置默认Realm实例(可选,若不需要自定义配置可省略)
        val defaultConfig = RealmConfiguration.Builder()
            .name("my_app_realm.realm")
            .schemaVersion(1)
            .build()
        Realm.setDefaultConfiguration(defaultConfig)
    }
}
  1. 在AndroidManifest.xml中注册该Application:
<application
    android:name=".MyApp"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/Theme.YourAppTheme">
    <!-- 其他组件配置 -->
</application>

四、常见问题排查

  • 版本不匹配:项目级classpath的Realm插件版本必须和模块级依赖版本完全一致,否则会出现类找不到的错误。
  • 仓库缺失:确保根目录构建文件中添加了mavenCentral(),Realm已不再托管于jcenter。
  • 缓存问题:执行File -> Invalidate Caches... -> Invalidate and Restart清理Android Studio缓存,避免依赖加载异常。
  • minSdk过低:Realm 10.x系列要求minSdk≥21,若你的项目minSdk低于21,需降级到Realm 9.x版本或提升项目minSdk。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 15:35:27