我正在努力增加空间,我的项目写在静态编程语言,但我总是得到这个错误。
用户数据类别
@Entity
data class Users(
@PrimaryKey
val id: String? = "",
@ColumnInfo(name = "userFullName")
val name: String?,
@ColumnInfo(name = "userEmail")
val email: String?,
@ColumnInfo(name = "userPassword")
val password: String?,
@ColumnInfo(name = "userBDay", defaultValue = "")
val birthday: String?
)
用户道
@Dao interface UserDao {
@Insert
fun insertUser(user: Users)
@Delete
suspend fun deleteUser(user: Users)
@Query("SELECT * FROM users")
fun getAllUsers(): List<Users>
}
用户数据库
@Database(entities = [Users::class], version = 1)
abstract class UserDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
companion object {
@Volatile
private var instance: UserDatabase? = null
fun getUserDatabase(context: Context): UserDatabase {
return instance ?: synchronized(this) {
val instance = Room.databaseBuilder(
context.applicationContext,
UserDatabase::class.java,
"usersDB"
).build()
this.instance = instance
instance
}
}
}
}
当我构建它时,我得到了这个错误:
失败:构建失败,出现异常。
哪里出错了:
2021-02-14T16:35:38.826 0300 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter]
任务 “:app:kaptDebugKotlin” 的执行失败。
执行org.jetbrains.kotlin.gradle.internal时出错。KaptExecution是java.lang.reflect。InvocationTargetException(无错误消息)
我从github编写和下载的每个代码中都出现了这个错误。
我在这些链接中尝试了解决方案:
重复生成失败“要使用协程功能,必须添加'ktx'......”
如何摆脱增量注释处理请求警告?
错误:任务': app: compileDebugKotlin'执行失败。
执行org.jetbrains.kotlin.gradle.internal.KaptExecution时发生故障
执行com.android.build.gradle.internal.tasks时出错
我也认为这可能是由AS引起的,我下载了其他版本的AS,同样的事情发生了
对我来说,问题是@Installin注释与Application ationComponent::class我只是将其更改为SingletonComponent::class
Befor:
@InstallIn(Application组件::class)
后: @InstallIn(单例组件::类)
还从我的模块类中的函数中删除了@Singleton注释
在viewModel类中,您应该像这样注入构造函数:
类MainViewModel@Inject构造函数(私有val存储库:存储库,@ApplicationContext应用程序:MyApplication):AndroidViewModel(应用程序)
并在您的活动或片段中初始化您的视图模型,如下所示:
val main ViewModel: MainViewModel by viewModels()
@插入趣味插入器(用户:用户)
将此更改为
@插入暂停乐趣插入器(用户:用户)
插入不应该在UI线程上完成。这是这个错误的可能原因。
这是因为android studio ide和kotlin版本。所以,当我更新下一个版本或降级到其他版本时,问题就解决了
应用程序通常会通过抛出另一个异常来响应异常。 实际上,第一个异常引起第二个异常。 它可以是非常有助于用户知道什么时候一个异常导致另一个异常。 “异常链(Chained Exceptions)”帮助程序员做到这一点。 以下是Throwable中支持异常链的方法和构造函数。 Throwable getCause() Throwable initCause(Throwable) Throwable(St
你可以使用raise语句 引发 异常。你还得指明错误/异常的名称和伴随异常 触发的 异常对象。你可以引发的错误或异常应该分别是一个Error或Exception类的直接或间接导出类。 如何引发异常 例13.2 如何引发异常 #!/usr/bin/python # Filename: raising.py classShortInputException(Exception): '''A u
问题内容: 异常存储在哪里?堆,堆。如何为异常分配和释放内存?现在,如果您有多个需要处理的异常,是否创建了所有这些异常的对象? 问题答案: 我假设为异常分配的内存分配方式与所有其他对象(在堆上)分配方式相同。 这曾经是个问题,因为您不能为OutOfMemoryError分配内存,这就是直到Java 1.6之前 才没有堆栈跟踪的原因。现在,它们也为stacktrace预分配了空间。 如果您想知道在抛
因为Java编程语言不需要捕获方法或声明未检查异常(包括 RuntimeException、Error及其子类),程序员可能会试图编写只抛出未检查异常的代码,或使所有异常子类继承自RuntimeException。这两个快捷方式都允许程序员编写代码,而不必担心编译器错误,也不用担心声明或捕获任何异常。虽然这对于程序员似乎很方便,但它避开了捕获或者声明异常的需求,并且可能会导致其他人在使用您的类而产
当面对选择抛出异常的类型时,您可以使用由别人编写的异常 - Java平台提供了许多可以使用的异常类 - 或者您可以编写自己的异常类。 如果您对任何以下问题回答“是”,您应该编写自己的异常类;否则,你可以使用别人的。 你需要一个Java平台中没有表示的异常类型吗? 如果用户能够区分你的异常与由其他供应商编写的类抛出的异常吗? 你的代码是否抛出不止一个相关的异常? 如果您使用他人的例外,用户是否可以访
异常 对于异常处理,倾向使用 raise 而不是 fail。 # 差 fail SomeException, 'message' # 好 raise SomeException, 'message' 不要在带双参数形式的 raise 方法中显式指定 RuntimeError。 # 差 raise RuntimeError, 'message' # 好 - 默认就是 RuntimeError rai