相关疑难解决方法(0)

如何在Android Studio 3.0.0中使用数据绑定和Kotlin

我刚开始使用Android Studio 3.0.0,但每次尝试构建我的项目时都会收到此错误:

Error:Circular dependency between the following tasks:
:app:compileDebugKotlin
+--- :app:dataBindingExportBuildInfoDebug
|    \--- :app:compileDebugKotlin (*)
\--- :app:kaptDebugKotlin
     \--- :app:dataBindingExportBuildInfoDebug (*)
(*) - details omitted (listed previously)
Run Code Online (Sandbox Code Playgroud)

我在用

kapt "com.android.databinding:compiler:2.2.0"
Run Code Online (Sandbox Code Playgroud)

在我使用之前

androidProcessor "com.android.databinding:compiler:2.2.0"
Run Code Online (Sandbox Code Playgroud)

它工作得很好......我做错了什么?

谢谢!

android kotlin android-studio android-databinding android-studio-3.0

96
推荐指数
3
解决办法
2万
查看次数

Android Room Persistences库和Kotlin

我正在尝试使用Kotlin和Room Persistance Library编写一个简单的应用程序.我按照Android Persistance codelab中的教程进行操作.

这是我AppDatabase在Kotlin的课程:

@Database(entities = arrayOf(User::class), version = 1)
abstract class AppDatabase : RoomDatabase() {
    abstract fun userModel(): UserDao

    companion object {
        private var INSTANCE: AppDatabase? = null
        @JvmStatic fun getInMemoryDatabase(context: Context): AppDatabase {
            if (INSTANCE == null) {
                INSTANCE = Room.inMemoryDatabaseBuilder(context.applicationContext, AppDatabase::class.java).allowMainThreadQueries().build()
            }
            return INSTANCE!!
        }

        @JvmStatic fun destroyInstance() {
            INSTANCE = null
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我试图运行应用程序时,它会立即崩溃.这是崩溃日志:

Caused by: java.lang.RuntimeException: cannot find implementation for com.ttp.kotlin.kotlinsample.room.AppDatabase. AppDatabase_Impl does not exist
    at …
Run Code Online (Sandbox Code Playgroud)

database kotlin kapt android-room

54
推荐指数
3
解决办法
2万
查看次数

Kotlin中的Room Persistence lib实现

我正在kotlin中实现Room persistence lib来实现我的数据库.

以下是我的Entity,DaoDatabase类:

Food.kt

@Entity
class Food(@ColumnInfo(name = "food_name") var foodName: String,
           @ColumnInfo(name = "food_desc") var foodDesc: String,
           @ColumnInfo(name = "protein") var protein: Double,
           @ColumnInfo(name = "carbs") var carbs: Double,
           @ColumnInfo(name = "fat") var fat: Double)
{
    @ColumnInfo(name = "id")
    @PrimaryKey(autoGenerate = true)
    var id: Long = 0
    @ColumnInfo(name = "calories")
    var calories: Double = 0.toDouble()
}
Run Code Online (Sandbox Code Playgroud)

PersonalizedFood.kt

@Entity(primaryKeys = arrayOf("food_id","date"))
class PersonalizedFood(@ColumnInfo(name = "quantity") var quantity: Int,
                       @ColumnInfo(name = "unit") var unit: …
Run Code Online (Sandbox Code Playgroud)

android kotlin

17
推荐指数
1
解决办法
1万
查看次数

Kotlin中的Room Persistence lib实现(Gradle错误)

我正在kotlin中实现Room persistence lib来实现我的数据库.在Android Room Persistences库和Kotlin线程中询问相同的问题,应用这些解决方案会导致不同的gradle错误:

以下是我的Entity,DaoDatabase类:

Food.kt

@Entity
class Food(@ColumnInfo(name = "food_name") var foodName: String,
           @ColumnInfo(name = "food_desc") var foodDesc: String,
           @ColumnInfo(name = "protein") var protein: Double,
           @ColumnInfo(name = "carbs") var carbs: Double,
           @ColumnInfo(name = "fat") var fat: Double)
{
    @ColumnInfo(name = "id")
    @PrimaryKey(autoGenerate = true)
    var id: Long = 0
    @ColumnInfo(name = "calories")
    var calories: Double = 0.toDouble()
}
Run Code Online (Sandbox Code Playgroud)

PersonalizedFood.kt

@Entity(primaryKeys = arrayOf("food_id","date"))
class PersonalizedFood(@ColumnInfo(name = "quantity") var quantity: Int,
                       @ColumnInfo(name …
Run Code Online (Sandbox Code Playgroud)

android kotlin

5
推荐指数
1
解决办法
4596
查看次数