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

Java版Android应用Realm数据库依赖配置问题求助

正确配置Realm for Java Android应用

1. 更新libs.versions.toml

你当前的配置只添加了插件依赖,缺少Java版Realm核心库,且插件的引用逻辑有误。修正后的文件如下:

[versions]
# 可保留你使用的版本,或升级至最新稳定版
realm = "10.19.0"
realmGradlePlugin = "10.19.0"

[libraries]
# Java版Realm核心依赖库
realm-android = { module = "io.realm:realm-android", version.ref = "realm" }
# Realm Gradle插件
realm-gradle-plugin = { module = "io.realm:realm-gradle-plugin", version.ref = "realmGradlePlugin" }

2. 修正app级build.gradle.kts

Realm插件需通过plugins块应用,而非放入dependencies中。同时要添加核心库依赖,并明确开启Java支持:

plugins {
    id("com.android.application")
    // 应用Realm插件
    id("io.realm.kotlin") version libs.versions.realmGradlePlugin.get() apply false
}

android {
    // 你的基础Android配置(compileSdk、defaultConfig等)
    defaultConfig {
        minSdk = 21 // Realm 10.x系列要求最低SDK版本为21
    }

    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
}

dependencies {
    // 添加Java版Realm核心库依赖
    implementation(libs.realm.android)
}

// 配置Realm启用Java支持
realm {
    syncEnabled = true // 需要云端同步(Atlas Device Sync)则设为true,仅本地存储设为false
    javaEnabled = true // 关键配置:开启Java语言支持
}

3. 验证配置

同步Gradle后,即可在Java类中正常继承RealmObject:

import io.realm.RealmObject;

public class User extends RealmObject {
    private String name;
    private int age;

    // Realm要求必须提供无参构造函数
    public User() {}

    // Getter和Setter方法
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public int getAge() { return age; }
    public void setAge(int age) { this.age = age; }
}

关键注意点

  • 插件不能放在dependencies块中,必须通过plugins块声明应用。
  • 必须开启javaEnabled = true,否则Realm默认仅生成Kotlin相关代码,Java无法识别RealmObject类。
  • 若使用云端同步功能,需确保在Realm Atlas控制台完成同步服务的配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 22:39:57