当前位置: 首页 > 知识库问答 >
问题:

错误:找不到符号Dao会话和DaoMaster

戚繁
2023-03-14

我在应用程序中使用GreenDao。Proguard已启用调试生成。

添加数据绑定支持后,出现了以下问题:

/app/src/main/java/com/example/MainApplication。java:29:错误:找不到符号

私人道会;

      ^   

符号:class DaoSession位置:class主应用程序

同样的问题也会出现在道士身上。

此外,这个问题来了:

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)

应用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'

项目构建。格拉德尔:

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

共有2个答案

衡子琪
2023-03-14

如果代码生成失败,可能会发生类似这样的错误。这并不意味着错误是由GreenDao引起的。由于您刚刚介绍了数据绑定,因此可能是数据绑定的问题。

挑战是找到实际的错误日志,尝试使用gradle和debug和stacktrace选项进行构建,并检查输出。

窦英武
2023-03-14

更改您的应用程序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插件之前。

 类似资料:
  • 这里有一个类似的答案:如何在Java中将函数作为参数传递? 但提供的正确答案不起作用。我有一门课: 在函数内部我试图将传递到,但我得到的错误是: 找不到符号 符号:类Callable 我不知道为什么。 另外,我尝试使用返回类型字符串作为xMethod,您能传递一个返回类型不同的函数吗?

  • 我试图在我编译并部署到aws Lambda的概念证明类上从gradle运行一个简单的junit测试。类接受一个POJO,只有一个属性。它自己编译得很好,并在AWS上工作。但是,当我跑的时候: 我收到以下错误: 如果我从中访问对象的属性没有问题。我是不是没有掌握一些关键的java或gradle概念?我已经重构了5种不同的方式,但我总是收到这找不到符号错误。有人有什么想法吗?这是我的简化代码。 } B

  • 问题内容: 我使用时代码工作正常 吗?在我看来这很奇怪。 (错误显示在终端上) 问题答案: 这是 Arrays 类的静态方法。 您应该像这样调用它: 请注意,您仍然必须像这样导入Arrays类: 或者像其他人提到的那样,如果您进行静态导入,则可以省略类名。 我认为这样做对可读性更好。

  • (菜鸟失误,我确定。) 我是计算机科学专业的一年级学生,正在尝试用代码编写作业程序; 但是在编译时,我得到了错误; Lab10Ex1.java:10: 错误: 找不到符号 System.out.print(n 1);^ 符号:变量n 位置: 班级 Lab10Ex1 如果有人能向我解释我做错了什么,或者如何纠正它,我会非常感激。

  • 我有一个问题,我试图实现一个JMenuBar,但不断得到一个不能找到符号错误。我将JFrame与main方法一起放在一个单独的类中,JFrame将安装MainPanel类的一个对象。我在这里漏掉了什么?如有任何帮助将不胜感激,谢谢! 符号:方法setJMenuBar(JMenuBar) 位置:类主面板

  • 问题内容: 我有一个程序从文件读取,获取每个单词并将其作为字符串添加到数组中。我在将字符串添加到数组时遇到了麻烦。我得到错误: 符号:方法add(String)位置:String []类型的变量数组 我检查了我的拼写,一切似乎都还好。发生了什么事,我该如何解决? 非常感谢 问题答案: 答案很长很无聊,如果您只想简单回答,请跳到底部 。 好的,伙计,我想我在这里看到您的问题,首先我要说的是,您可能会