我已经使用Kotlin创建了SelfGeneration
Realm类,并在添加项目不再构建之后。我该如何解决这个问题?
@RealmClass open class SelfGeneration() : BaseRealmObject {
@PrimaryKey override var id: Int? = null
open var type: ItemType? = null
open var model: String? = null
open var watt: Int? = null
companion object {
fun getById(id: Int): SelfGeneration {
val realm = Realm.getDefaultInstance()
val selfGeneration = realm.where(SelfGeneration::class.java)
.equalTo(BaseRealmObject.Field.ID, id)
.findFirst()
return realm.copyFromRealm(selfGeneration)
}
}
}
依赖关系:
dependencies {
classpath com.android.tools.build:gradle:2.1.3
classpath io.realm:realm-gradle-plugin:1.2.0
classpath com.neenbedankt.gradle.plugins:android-apt:1.8
classpath "com.fernandocejas.frodo:frodo-plugin:0.8.1
}
Gradle错误:
错误:任务javassist的执行失败 NotFoundException:com.theappsolution.conectric.model.SelfGeneration
答案 0 :(得分:2)
Android Studio 即时运行功能和Realm不兼容。使用此功能可能会导致许多非显而易见的错误以及编译时或运行时。包括您报告的那个。
在Android中,当使用 Instant Run 功能时,一些执行字节代码操作的插件可能无法正常运行。在documentation for Instant Run中它说:
在编译时执行字节码增强的某些第三方插件可能会导致Instant Run对您的应用进行监控的问题。如果您遇到这些问题,但想继续使用Instant Run,则应该为调试版本变体禁用这些插件。您还可以通过提交错误来帮助改善与第三方插件的兼容性
领域talks about their change to use bytecode weaving所以这是在编译时或运行时可能会与 Instant Run 分解的插件类型。确实在Realm issue 1832他们谈论即时运行的问题(在Realm问题跟踪器中有超过28 issues with the phrase "Instant Run")。此外,其他Stack Overflow问题也讨论了这些问题,例如:Realm causes my app to crash when trying to build a RealmConfiguration。
目前唯一的解决方案是禁用Android Studio首选项中的 Instant Run 功能,清理项目,然后重新构建/运行。