- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
java.lang.RuntimeException: cannot find implementation for com.qbitstream.salesmanagementsystem.data.AppDatabase. AppDatabase_Impl does not exist at androidx.room.Room.getGeneratedImplementation(Room.java:94)
我已经在我的 gradle 文件中添加了所有东西。我的gradle文件如下所示
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.qbitstream.salesmanagementsystem"
minSdkVersion 19
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
def nav_version = "1.0.0-alpha04"
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.0.0-rc01'
implementation 'androidx.constraintlayout:constraintlayout:1.1.2'
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0-rc01'
implementation 'androidx.legacy:legacy-support-v4:1.0.0-rc01'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
implementation "android.arch.navigation:navigation-fragment:$nav_version" // use -ktx for Kotlin
implementation "android.arch.navigation:navigation-ui:$nav_version" // use -ktx for Kotlin
//room
def room_version = "2.0.0-rc01"
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version" // use kapt for Kotlin
// optional - RxJava support for Room
implementation "androidx.room:room-rxjava2:$room_version"
// optional - Guava support for Room, including Optional and ListenableFuture
implementation "androidx.room:room-guava:$room_version"
// Test helpers
testImplementation "androidx.room:room-testing:$room_version"
// retrofit
implementation "com.squareup.retrofit2:retrofit:2.3.0"
implementation "com.squareup.retrofit2:adapter-rxjava2:2.3.0"
implementation "com.squareup.retrofit2:converter-gson:2.3.0"
// rxandroid
implementation "io.reactivex.rxjava2:rxandroid:2.0.1"
}
调用房间
ioThread {
AppDatabase.getInstance(activity!!).customerDao().insertAll(it.customer.data)
}
AppDatabase.kt
import android.content.Context
import androidx.room.Database
import androidx.room.Room
import androidx.room.RoomDatabase
import com.qbitstream.salesmanagementsystem.model.Customer
@Database(entities = [(Customer::class)], version = 1)
abstract class AppDatabase: RoomDatabase() {
abstract fun customerDao(): CustomerDao
companion object {
@Volatile private var INSTANCE: AppDatabase? = null
fun getInstance(context: Context): AppDatabase =
INSTANCE ?: synchronized(this) {
INSTANCE ?: buildDatabase(context).also { INSTANCE = it }
}
private fun buildDatabase(context: Context) =
Room.databaseBuilder(context.applicationContext,
AppDatabase::class.java, "sms.db")
.build()
}
}
CustomerDao.kt
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import com.qbitstream.salesmanagementsystem.model.Customer
@Dao
interface CustomerDao {
@Insert(onConflict = OnConflictStrategy.IGNORE)
fun insertAll(customer:List<Customer>)
@Query("SELECT * FROM customer where lower(customer_name) like ':name%'")
fun customers(name:String):List<Customer>
}
DataClasses.kt
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
import com.google.gson.annotations.SerializedName
data class Customers(val customer: Data,val response_code:Int,val status:String)
data class Data(val data:ArrayList<Customer>)
@Entity(tableName = "customer")
data class Customer(
@PrimaryKey
@ColumnInfo(name = "id")
@SerializedName("id")
val id:String,
@ColumnInfo(name = "customer_name")
@SerializedName("customer_name")
val name:String)
data class Manufacturer(val id:Int,val name:String)
data class Product(val id:Int,val manufacturerId: Int,val name:String)
最佳答案
在 Kotlin 项目中使用注释处理时(Room 使用),您应该使用 kapt ,Kotlin 注释处理器插件。
首先,您应该将此添加到您的 build.gradle
文件的顶部,以启用 kapt 的其余插件:
apply plugin: 'kotlin-kapt'
然后你应该使用 kapt
而不是 annotationProcessor
作为你的依赖项,正如你在该行的评论所说:
kapt "androidx.room:room-compiler:$room_version" // use kapt for Kotlin
请注意,kapt 还将处理 Java 文件,因此您无需将所有内容都添加两次,使用 kapt
添加的任何注释处理器就足够了。
关于android - 我尝试使用 Androidx 实现房间数据库,但出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51835236/
我在使用 Room 或 idk 时遇到问题,实际上问题出在哪里,我需要帮助找出问题出在哪里,我正在使用 Hilt DI,创建数据库实例的那一刻它崩溃了这是我的代码 错误 E/AndroidRuntim
我有一个关于数据结构和类设计的问题(抱歉太长了)。为了简单起见,假设这是一个游戏,我想在房间之间导航(想象一系列 2D 非滚动屏幕,例如早期的银河战士/恶魔城)。每个房间可以有许多导出(例如上、下、左
我使用当前日期(1-25)作为父ID并使用房间(08-00_11-00_karpet1-)作为 child ID。该数据库中包含在该日期(父 ID)订购该房间(子 id)的用户信息。 问题1 使用此布
在我的 Android 项目中,我使用 Room 库来处理 SQLite 数据库。我使用我的数据库来保存国家电话代码。我的数据库预装了两个国家(观看 populateDatabaseWithCount
我正在尝试将 Room 持久性库添加到 Android 应用程序项目中。在 build.gradle 文件中,我添加了以下依赖项: implementation 'android.arch.persi
人们可以提前从 25 场讲座中选择最多 5 场。所有这些讲座都在五个房间的五个时间段内在一天内进行。听众可以参加的每个(首选)讲座都让她更快乐,他选择但不能参加的每个讲座(因为另一个首选讲座在同一时间
我在 Android 上使用 OrmLite 而不是 SQLite 和 SQLCipher 来加密数据库。有没有办法加密 Room 数据库? 最佳答案 默认情况下,Room 将数据存储在应用程序的内部
使用 Room ORM,我使用 @Entity 注释声明了一个实体 EQPreset。该实体包含一个数组 int[]。它给出以下错误: 错误:无法确定如何将此字段 (int[] arr) 保存到数据库
我正在尝试构建一个管理 child 托儿所的应用程序,特别是管理哪个 child 在哪个时间点在托儿所的哪个房间里。 Nursery 链式店有多个分支机构。每个分店有几个房间,每个房间对应一个年龄段,
我在生产环境中遇到了“android.database.sqlite.SQLiteDatabaseLockedException”异常。错误分析时出现异常。我的项目数据库有空间。项目中没有使用多进程。
我想实现 Android Room 持久性。 这是我的 DAO 界面。 @Dao interface FoodDao { /** * Returns all data in tabl
我正在尝试使用 Room 数据库和 LiveData。我有 ViewModels,它保存从 dao 获得的 LiveData。如果我更新Transaction ,然后LiveData>观察正常,但是
在 Firebase ,创建“房间”(例如用于聊天)很容易,正如其各种示例中所记录的那样。 对于聊天的数据结构,我会使用这样的东西: rooms room1 member_co
我试图从 Activity 中将一行插入 SQLITE 数据库,然后返回要存储在 Activity 中的变量中的 rowId。请参阅下面我使用的方法和逻辑。 private void insert
我正在使用 XMPPFramework 开发聊天应用程序 加入现有房间后如何接收消息历史记录? 现在我像这样加入房间: XMPPJID *roomJid = [XMPPJID jidWithStrin
我在我的应用程序中使用 Room 并将数据插入到我的数据库中时 ConcurrentModificationException有时会被抛出。为什么会这样? 我使用分页 api,在每次 api 调用后,
我想为 pb 添加值,由于将 pb_value 包含到实体中,应用程序崩溃了。我是学习室的新手,我不确定将额外项目合并到数据库中的正确方法。 E/AndroidRuntime: FATAL EXCEP
我想在当前 pb 中添加值、日期和详细信息。我在 pbInfo 的数据库中收到错误“冲突声明”。我应该如何修复此错误? @Entity(tableName = "pb_table") data cla
我正在尝试制作一个聊天应用程序,用户可以在其中聊天。我想将两个用户 uid 字符串插入函数并返回一个连接的字符串。但我希望以某种方式组织 uid,以便返回的值始终相同。 func (id1, id2)
我不断收到以下错误: Cannot figure out how to save this field into database. You can consider adding a type co
我是一名优秀的程序员,十分优秀!