You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

存储数据时无法创建类ViewModel——使用Hilt、Room和JetpackCompose

下面是可能的解决方法之一:

  1. 确保您已在应用程序级别的Gradle文件中添加了以下依赖项:
implementation 'androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha03'
annotationProcessor 'androidx.hilt:hilt-compiler:1.0.0-alpha03'
  1. 确保您已在应用程序级别的Gradle文件中添加了以下代码行:
kapt {
    correctErrorTypes true
}

//使用以下依赖项替换Application和Kotlin版本
implementation "androidx.fragment:fragment-ktx:$fragment_version"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"

//添加以下依赖项
implementation 'com.google.dagger:hilt-android:2.38.1'
kapt 'com.google.dagger:hilt-android-compiler:2.38.1'

//添加以下依赖项
def room_version = "2.3.0"
implementation "android.arch.persistence.room:runtime:$room_version"
implementation "android.arch.persistence.room:rxjava2:$room_version"
kapt "android.arch.persistence.room:compiler:$room_version"
  1. 在AppDelegate.kt类的onCreate方法中添加以下代码行:
@Module
@InstallIn(SingletonComponent::class)
object AppModule {
    @Singleton
    @Provides
    fun provideDatabase(@ApplicationContext appContext: Context) =
        Room.databaseBuilder(
            appContext,
            AppDatabase::class.java,
            "database-name"
        ).build()

    @Singleton
    @Provides
    fun provideNoteDao(db: AppDatabase) = db.noteDao()
}

@AndroidEntryPoint
class AppDelegate : Application() {
    override fun onCreate() {
        super.onCreate()
        //添加以下代码
        if (BuildConfig.DEBUG) {
            Timber.plant(Timber.DebugTree())
        }
    }
}
  1. 在ViewModel类的构造函数中使用@Inject标记依赖项,并使用@HiltViewModel注释该类。例如:
@HiltViewModel
class
本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

MAD,现代安卓开发技术:Android 领域开发方式的重大变革|社区征文

【**Jetpack**】讲述 Android 持续更新的重大框架集合,并逐个演示重要框架解决的问题和优势6. 【**Jetpack Compose**】带领大家感受 Android 上 UI 开发方式的重大变革## 1.Modern Android Development 官方... `Database Inspector` 可以实时查看 Jetpack `Room` 框架生成的数据库文件,同时也支持实时编辑和部署到设备当中。相较之前需要的 `SQLite` 命令或者额外导出并借助 DB 工具的方式更为高效和直观。### 2.2 Layout...

10 个问题带你了解 Compose Multiplatform 1.0 |社区征文

正文开始前先统一一下文中的用语:- **compose-jb**:Compose Multiplatform 简称,包含下面三者- **compose-android**:Jetpack Compose- **compose-desktop**:Compose for Desktop- **compose-web**: Compose fo... 他们迫切希望使用 Compose 替换 Swing 和 AWT 等基于 Java 的陈旧的技术栈,这也正是 compose-desktop 诞生的初衷。# 3. 有何技术优势?1.0是否已稳定?应用开发无非关注三件事:数据获取,状态管理,界面渲染。Jet...

借助 MAD 助力你的 Android 应用开发|社区征文

去年推出的 Jetpack Compose 更是将这种变化推向了新阶段。Goolge 将这些新技术下的开发方式命名为 MAD ,以此区别于旧有的低效的开发方式。MAD 可以指导开发者更高效地开发出优秀的移动应用,它的优势这主要体现在... 同时更重要的是避免了因为 Item 篡改带来的数据一致性问题:```kotlinviewModel.uiState.collect { when (it) { Result.Success -> bannerAdapter.updateList(it.list) else {...} }}...

展望 2022 :Android 开发技术动向 | 社区征文

Jetpack- Jetpack Compose- Android Studio- AGP# Android OS## Material YouAndroid12 在10月进行了正式推送。Android12 的最大亮点就是基于 Material You 设计语言对原生系统 UI 进行了重新设计。 Mat... 较好地替代现有的 LiveData 的使用场景。你可以只在 Model 层使用 Flow,在 View 层仍然使用 LiveData,通过 `Flow.asLiveData` 将 Flow 转换为 LiveData:```kotlin// import androidx.lifecycle.asLiveDatacl...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

存储数据时无法创建类ViewModel——使用Hilt、Room和JetpackCompose -优选内容

MAD,现代安卓开发技术:Android 领域开发方式的重大变革|社区征文
【**Jetpack**】讲述 Android 持续更新的重大框架集合,并逐个演示重要框架解决的问题和优势6. 【**Jetpack Compose**】带领大家感受 Android 上 UI 开发方式的重大变革## 1.Modern Android Development 官方... `Database Inspector` 可以实时查看 Jetpack `Room` 框架生成的数据库文件,同时也支持实时编辑和部署到设备当中。相较之前需要的 `SQLite` 命令或者额外导出并借助 DB 工具的方式更为高效和直观。### 2.2 Layout...
10 个问题带你了解 Compose Multiplatform 1.0 |社区征文
正文开始前先统一一下文中的用语:- **compose-jb**:Compose Multiplatform 简称,包含下面三者- **compose-android**:Jetpack Compose- **compose-desktop**:Compose for Desktop- **compose-web**: Compose fo... 他们迫切希望使用 Compose 替换 Swing 和 AWT 等基于 Java 的陈旧的技术栈,这也正是 compose-desktop 诞生的初衷。# 3. 有何技术优势?1.0是否已稳定?应用开发无非关注三件事:数据获取,状态管理,界面渲染。Jet...
借助 MAD 助力你的 Android 应用开发|社区征文
去年推出的 Jetpack Compose 更是将这种变化推向了新阶段。Goolge 将这些新技术下的开发方式命名为 MAD ,以此区别于旧有的低效的开发方式。MAD 可以指导开发者更高效地开发出优秀的移动应用,它的优势这主要体现在... 同时更重要的是避免了因为 Item 篡改带来的数据一致性问题:```kotlinviewModel.uiState.collect { when (it) { Result.Success -> bannerAdapter.updateList(it.list) else {...} }}...
展望 2022 :Android 开发技术动向 | 社区征文
Jetpack- Jetpack Compose- Android Studio- AGP# Android OS## Material YouAndroid12 在10月进行了正式推送。Android12 的最大亮点就是基于 Material You 设计语言对原生系统 UI 进行了重新设计。 Mat... 较好地替代现有的 LiveData 的使用场景。你可以只在 Model 层使用 Flow,在 View 层仍然使用 LiveData,通过 `Flow.asLiveData` 将 Flow 转换为 LiveData:```kotlin// import androidx.lifecycle.asLiveDatacl...

存储数据时无法创建类ViewModel——使用Hilt、Room和JetpackCompose -相关内容

【社区征文】Compose 为什么可以跨平台?

一棵状态树和一棵渲染树。> 关于两棵树:如果你了解 React,可以将这两棵树的关系类比成 React 中的 VIrtual DOM Tree 与 Real DOM Tree。Compose 中的这棵 “Virtual DOM” 用来记录 UI 显示所需要的状态信息, 所以我们称之为状态树。状态树上的节点单元是 Group,编译器生成的 startXXXGroup 本质上就是在创建 Group 单元, startXXXGroup 与 endXXXGroup 之间产生的数据状态都归属当前 Group;产生的 Group 就成为子 Group,因此...

跳槽、换房、不忘输出,一名 Android 开发者的 2022

也算是没有辜负这一年的好时光。更重要的是心态平和了许多,不再追逐数据上的满足。### 20 篇文章 一年总共输出了 **20** 篇文章: **16** 篇原创 + 4 篇翻译。主要涵盖了 Android 13、Kotlin、车载、MAD 这几个话... 今年主要在公司内进行了 3 次分享,分别是:* 非技术的《如何搭建自己的知识系统并持续输出?》* 面向技术的 * 《Practice on Jetpack Compose:*Recreate Flappy Bird game in 3 days*》 * 《Understandin...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询