我在申请中使用GreenDao。 Proguard已启用调试版本。
添加数据绑定支持后,出现以下问题:
/app/src/main/java/com/example/MainApplication.java:29: 错误:找不到符号
私人DaoSession mDaoSession;^
符号:DaoSession类 location:class Main Application
同样的问题即将发生在DaoMaster
。
此外,这个问题即将来临:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:kaptDebugKotlin'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:103)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:73)
app build.gradle:
apply plugin: 'kotlin-kapt'
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
//For green dao
apply plugin: 'org.greenrobot.greendao'
buildscript {
ext.kotlin_version = '1.2.41'
...
}
android {
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
...
}
dataBinding {
enabled = true
}
buildTypes {
debug {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
kapt { generateStubs = true }
}
dependencies {
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'org.greenrobot:greendao:3.2.2'
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'org.jetbrains.anko:anko-common:0.8.3'
kapt 'com.android.databinding:compiler:3.1.2'
}
apply plugin: 'kotlin-android-extensions'
Project build.gradle:
buildscript {
ext.kotlin_version = '1.2.41'
dependencies {
classpath 'com.android.tools.build:gradle:3.1.2'
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
...
答案 0 :(得分:3)
像这样更改您的应用程序build.gradle:
//For green dao
apply plugin: 'org.greenrobot.greendao'
apply plugin: 'kotlin-kapt'
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
将greendao
插件移到kotlin
插件之前。
答案 1 :(得分:0)
如果代码生成失败,可能会发生这样的错误。这并不意味着错误是由GreenDao引起的。由于您提到刚刚引入了数据绑定,因此数据绑定可能存在问题。
挑战是找到实际的错误日志,尝试使用带有--debug
和--stacktrace
选项的gradle构建并检查输出。