Android Studio Jellyfish版本下正确集成Realm Database的方法
在Android Studio Jellyfish 2023.3.1中集成Realm Database的正确步骤
新版Android Studio(对应AGP 8.x+)已不再支持旧的Project Structure图形化添加Realm插件/依赖的方式,直接手动修改配置文件即可完成集成,步骤如下:
1. 配置项目级构建文件
打开项目根目录下的build.gradle.kts(Groovy语法为build.gradle),在plugins块中添加Realm插件依赖:
Kotlin DSL(build.gradle.kts)
plugins { id("com.android.application") version "8.2.0" apply false id("org.jetbrains.kotlin.android") version "1.9.0" apply false // 添加Realm插件 id("io.realm.kotlin") version "1.15.0" apply false }
Groovy语法(build.gradle)
plugins { id 'com.android.application' version '8.2.0' apply false id 'org.jetbrains.kotlin.android' version '1.9.0' apply false // 添加Realm插件 id 'io.realm.kotlin' version '1.15.0' apply false }
2. 配置模块级构建文件
打开app模块下的build.gradle.kts(Groovy语法为build.gradle),应用Realm插件并按需添加依赖:
Kotlin DSL(build.gradle.kts)
plugins { id("com.android.application") id("org.jetbrains.kotlin.android") // 应用Realm插件 id("io.realm.kotlin") } android { compileSdk = 34 defaultConfig { minSdk = 21 // Realm要求minSdk最低为16 // 其他项目配置 } } dependencies { // 核心依赖由插件自动引入,如需同步功能可添加以下依赖 implementation("io.realm.kotlin:library-sync:1.15.0") }
Groovy语法(build.gradle)
plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' // 应用Realm插件 id 'io.realm.kotlin' } android { compileSdk 34 defaultConfig { minSdk 21 // Realm要求minSdk最低为16 // 其他项目配置 } } dependencies { // 核心依赖由插件自动引入,如需同步功能可添加以下依赖 implementation 'io.realm.kotlin:library-sync:1.15.0' }
3. 初始化Realm
创建自定义Application类并初始化Realm(若已有自定义Application,直接添加初始化代码即可):
class MyApp : Application() { override fun onCreate() { super.onCreate() // 初始化Realm Realm.init(this) // 配置Realm实例 val config = RealmConfiguration.Builder() .name("my_realm_db.realm") .schemaVersion(1) .build() Realm.setDefaultConfiguration(config) } }
在AndroidManifest.xml的<application>标签中注册自定义Application:
<application android:name=".MyApp" // 其他属性配置 >
验证集成
创建测试数据类:
open class User( @PrimaryKey var id: String = "", var name: String = "", var age: Int = 0 ) : RealmObject()
在Activity中测试读写操作:
// 写入数据 val realm = Realm.getDefaultInstance() realm.executeTransaction { val user = it.createObject(User::class.java, "1") user.name = "测试用户" user.age = 25 } // 读取数据 val user = realm.where(User::class.java).equalTo("id", "1").findFirst() Log.d("RealmTest", "用户名:${user?.name},年龄:${user?.age}") realm.close()
运行项目,若能正常打印日志,说明集成成功。
内容的提问来源于stack exchange,提问作者Shen
相关产品推荐
相关产品推荐

