Shu*_*der 6 android kotlin android-gradle-plugin objectbox
我正在尝试使用对象库。
我阅读了官方文档并按照说明进行操作。但是仍然无法正常工作。
问题是当我尝试初始化boxStore对象时,找不到MyObjectBox类。
val boxStore = MyObjectBox.builder().androidContext(this).build()
Run Code Online (Sandbox Code Playgroud)
这是我的应用程序模块。build.gradle(应用程序模块)
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"
}
Run Code Online (Sandbox Code Playgroud)
这是我的项目模块: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
}
Run Code Online (Sandbox Code Playgroud)
我正在几个项目中寻找可能的解决方案。我还遵循官方演示应用程序。但仍然,它对我不起作用吗?
谁能帮我解决这个问题?
我想我终于找到了解决方案:重要的部分是你必须在你的项目级 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"
Run Code Online (Sandbox Code Playgroud)
之后,apply plugin:...在应用级gradle中的other下添加以下几行
apply plugin: 'kotlin-kapt'
apply plugin: 'io.objectbox'
Run Code Online (Sandbox Code Playgroud)
最重要的是,你必须至少制作一个@Entity类并重建项目,并且MyObjectBox会出现。
小智 1
你的设置看起来不错。请注意,您不需要添加objectbox-android、objectbox-kotlin或objectbox-processor依赖项。该插件将为您做这件事。
您是否至少定义了一个@Entity 类?例如:
@Entity
public class User {
@Id
private long id;
private String name;
}
Run Code Online (Sandbox Code Playgroud)
然后构建>制作项目。注释处理器应该选取实体并生成 MyObjectBox 类。
| 归档时间: |
|
| 查看次数: |
1172 次 |
| 最近记录: |