我正在尝试使用对象库。
我阅读了官方文档并按照说明操作。但是,它还没有奏效。
问题是当我尝试初始化boxStore对象时,我找不到MyObjectBox类。
val boxStore = MyObjectBox.builder().androidContext(this).build()
这是我的app模块。 build.gradle(app模块)
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'io.objectbox'
android {
compileSdkVersion 26
defaultConfig {
....
}
buildTypes {
release {
....
}
}
sourceSets {
main.java.srcDirs += 'src/main/java'
}
}
kapt {
generateStubs = true
arguments {
arg("objectbox.debug", true)
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
... other dependencies
//object box
implementation "io.objectbox:objectbox-android:$objectboxVersion"
// some useful Kotlin extension functions
implementation "io.objectbox:objectbox-kotlin:$objectboxVersion"
kapt "io.objectbox:objectbox-processor:$objectboxVersion"
}
这是我的项目模块:build.gradle(项目)
buildscript {
ext.kotlin_version = '1.2.10'
//all version
ext.support_version = '26.1.0'
ext.objectboxVersion = '1.3.3'
repositories {
google()
jcenter()
maven { url "http://objectbox.net/beta-repo/" }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
//object box
classpath "io.objectbox:objectbox-gradle-plugin:$objectboxVersion"
}
}
allprojects {
repositories {
google()
jcenter()
maven { url 'https://maven.google.com' }
maven { url "http://objectbox.net/beta-repo/" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
我在几个项目中寻找可能的解决方案。我也关注官方演示应用程序。但是,它仍然不适合我吗?
任何人都可以帮我解决这个问题吗?
你的setup看起来不错。请注意,您不需要添加objectbox-android
,objectbox-kotlin
或objectbox-processor
依赖项。该插件将为您完成。
你是否定义了至少一个@Entity class?例如:
@Entity
public class User {
@Id
private long id;
private String name;
}
然后构建>制作项目。注释处理器应该选择实体并生成MyObjectBox类。
我想我终于找到了解决方案,重要的是你必须在项目级gradle文件中的objectbox-gradle-plugin
上面编写kotlin-gradle-plugin
,代码如下所示:
classpath 'com.android.tools.build:gradle:3.2.1'
classpath "io.objectbox:objectbox-gradle-plugin:$objectboxVersion"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
之后,在app-level gradle中的其他apply plugin:...
下添加以下行
apply plugin: 'kotlin-kapt'
apply plugin: 'io.objectbox'
然后你必须至少制作一个@Entity
类并重建项目,并出现MyObjectBox
。
我遇到了同样的问题。我的配置和你一样。
最后我找到了原因。
@Entity
data class Person @JvmOverloads constructor(@Id var id:Long,
var name:String,
var age:Int,
var high:Int)
像这样。您必须首先定义一个bean。因此MyObjectBox
将产生。