Malwinder Singh
Malwinder Singh

Reputation: 7060

error: cannot find symbol DaoSession and DaoMaster

I am using GreenDao in my application. Proguard is enabled for debug build.

After adding Data binding support, following issue arrived:

/app/src/main/java/com/example/MainApplication.java:29: error: cannot find symbol

private DaoSession mDaoSession;

      ^   

symbol: class DaoSession
location: class Main Application

Same issue is coming for DaoMaster.

Also, this issue is coming:

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"
    }
}
...

Upvotes: 0

Views: 1629

Answers (2)

0xAliHn
0xAliHn

Reputation: 19240

Change you app build.gradle like this:

//For green dao
apply plugin: 'org.greenrobot.greendao'

apply plugin: 'kotlin-kapt'
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'

Move your greendao plugin before the kotlin plugin.

Upvotes: 9

TpoM6oH
TpoM6oH

Reputation: 8585

Errors like this can happen if code generation fails. It does not mean that the error is caused by GreenDao. Since you mentioned that you just introduced data binding it might be a problem with data binding.

The challenge is to find the actual error log, try to build with gradle with --debug and --stacktrace options and inspect the output.

Upvotes: 0

Related Questions