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
相关产品推荐
相关产品推荐

