未解决的参考 dagger 2 + kotlin + android gradle

2024-01-03

我正在 Android 项目中使用 Kotlin 测试 Dagger 2。我的灵感来自于Android 干净的架构 https://github.com/android10/Android-CleanArchitecture回购。我的 gradle 构建中有两个模块,一个是“app”,一个是“module”。模块包含一个类调用模型。在我的应用程序 gradle 模块中,我使用模型提供程序创建了一个名为“DaggerModule”的匕首模块。当我尝试构建项目时,出现编译错误:

DaggerModule.kt: (3, 57): Unresolved reference: Model 
DaggerModule.kt: (9, 34): Unresolved reference: Model
DaggerModule.kt: (9, 42): Unresolved reference: Model

当我尝试将模型类从“module”模块移动到“app”模块内部时,所有内容都会编译而不会出现错误。试图弄清楚我是否在做一些愚蠢的事情,或者我是否应该在某个地方提交错误。

此处有问题文件的片段供参考:

----
app/build.gradle

buildscript {
    repositories {
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
        classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:0.12.1218'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'

repositories {
    jcenter()
    mavenCentral()
}

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.github.app.kotlin_unresolved_reference.app"
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_6
        targetCompatibility JavaVersion.VERSION_1_6
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    compile project(':module')
    compile 'com.android.support:appcompat-v7:22.2.1'

    kapt "com.google.dagger:dagger-compiler:2.0.1"
    compile "com.google.dagger:dagger:2.0.1"
    compile "javax.annotation:javax.annotation-api:1.2"
    compile "org.jetbrains.kotlin:kotlin-stdlib:0.12.1218"
}


---
module/build.gradle

apply plugin: 'java'

//noinspection GroovyUnusedAssignment
sourceCompatibility = 1.7
//noinspection GroovyUnusedAssignment
targetCompatibility = 1.7

configurations {
    provided
}

sourceSets {
    main {
        compileClasspath += configurations.provided
    }
}

dependencies {
    provided "com.google.dagger:dagger-compiler:2.0.1"
    compile "com.google.dagger:dagger:2.0.1"
    compile "javax.annotation:javax.annotation-api:1.2"
    compile "org.jetbrains.kotlin:kotlin-stdlib:0.12.1218"
}

---
DaggerModule.kt

Module
public class DaggerModule {
    Provides fun provideModel(): Model = Model()
}

----
Model.kt

public class Model { }

免责声明:这是我第一次试驾 Dagger 2,并且是一名 gradle 新手。示例项目是我能找到的显示问题的最少代码。我不指望它能起到多大作用:D。


Your 模块/build.gradle设置为 java 而不是 kotlin。我已将其修改为以下内容并且编译正常。

buildscript {
    repositories {
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:0.12.1218'
    }
}

apply plugin: 'kotlin'

dependencies {
    kapt "com.google.dagger:dagger-compiler:2.0.1"
    compile "com.google.dagger:dagger:2.0.1"
    compile "javax.annotation:javax.annotation-api:1.2"
    compile "org.jetbrains.kotlin:kotlin-stdlib:0.12.1218"
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

未解决的参考 dagger 2 + kotlin + android gradle 的相关文章

随机推荐

  • 在struts 2中将可变数量的参数从表单传递到动作

    我在应用程序中使用 struts2 并在 jsp 中有一个表单 该表单提交给操作类 表单中输入字段的数量在运行时可能会发生变化 因此操作类不能具有固定的参数 setter 和 getter 我试图在单个操作类中捕获这些可变数量的输入 我想知
  • Swing GUI 未更新

    我有一个简单的 Java Swing 应用程序 它使用 zip4j 来加密和解压 zip 文件 这是通过这部分代码完成的 ZipFile zipFile new ZipFile dataStorage zip zipFile setPass
  • flutter中的底部导航栏设计在单击时展开图标

    I need a navigation bar on which I can expand an icon when it s clicked in FlutterBottom Navigation bar design image htt
  • C# 3.0 (2009) 中的 C# 可选属性

    我想知道 C 是否支持如下可选属性 public class Person public string Name get set public optional string NickName get set many more prope
  • 如何使用 window.open() 显示窗口标题?

    我想使用以下命令打开一个新窗口 window open
  • Java代理认证

    我有一个在 Tomcat 6 中运行的 Java Web 应用程序 它从远程 URL 加载 RSS 提要 I use Rome http java net projects rome 为我处理 RSS 提要和不同的格式 连接部分如下所示 t
  • 在 Blazor 页面内渲染 React 组件

    是否可以在 Blazor 页面内呈现 React 组件 我尝试向 Blazor 页面添加脚本标签 但 Blazor 不允许添加脚本标签 感谢你的回答 是否可以在 Blazor 页面内呈现 React 组件 是的 这是可能的 React 是一
  • 使用 JavaScript 处理刷新页面事件

    是否可以使用JavaScript来处理刷新页面的事件 我想要的是 如果用户做出以下行为之一 我会收到通知 refresh page by pressing F5 关闭选项卡或浏览器 输入新网址 然后按 Enter 键 浏览器 显示警告消息
  • clojure cons 与带有惰性序列的 conj

    为什么 cons 在这种情况下可以与lazy seq配合使用 但 conj 却不能 这有效 defn compound interest p i cons p lazy seq compound interest p 1 i i 这不会 它
  • 如何将 HTML 字符串渲染为真正的 HTML?

    这是我尝试过的以及它是如何出错的 这有效 div Hi there gt 这不会 div div description 属性只是一个普通的 HTML 内容字符串 然而 由于某种原因 它被呈现为字符串 而不是 HTML 有什么建议么 Is
  • 如何在Node.js中请求图像并输出图像

    我尝试获取图像并显示在网址上 我用request https github com request request module 例如我想获取图像https www google com images srpr logo11w png 并显
  • 如何降低 Sphinx4 应用程序中的噪音

    我对 sphinx4 和语音识别很陌生 我正在使用 sphinx4 创建语音应用程序 问题是噪声 即使用户没有语音输入 它也会导致程序识别 即即使用户没有语音输入 程序也会将语音转换为文本 从而影响准确性 主要问题是如何实现降噪 这是因为即
  • 如何在 Tomcat 7 中以编程方式检索登录配置?

    在 Tomcat 7 上 我设置了一个领域来让容器管理身份验证过程 我还设置了 web xml 与相应的
  • 如何修复超过 maxWarmingSearchers 的限制?

    任何人都知道为什么以及如何解决这个问题 因为我同时有非常繁忙的更新和搜索 打开新搜索器时出错 超出 maxWarmingSearchers 2 的限制 请稍后再试 根据Solr 常见问题解答 超出 maxWarmingSearchers X
  • TitledBorder 标题更新/刷新延迟,为什么?

    我有一个JPanelA 内有标题边框JPanel B of a JTabbedPanelC 我有一个刷新A和B内容的方法 它会不时被调用 不幸的是 A 和 B 的所有项目都及时刷新 但 A 的标题没有刷新 我明确必须切换到另一个选项卡式面板
  • 反序列化 XML Rest WebApi 调用?

    我一直在关注一些在线示例 但由于某种原因我无法成功反序列化以下 XML 文档
  • 嵌入时间线的动态时间线选择 - 标签时间线

    我已按照指南进行操作here https dev twitter com discussions 18411使用相同的小部件 ID 添加多个小部件 这对于用户时间线来说效果非常好 片段 a class twitter timeline hr
  • 将嵌套 JSON 负载映射到 Elixir 中的结构

    我正在尝试将 Golang 教程 gddit 移植到 Elixir 我已经使用 Dartlang 成功做到了这一点 但 Elixir 在地图和列表上的操作让我感到困惑 使用 HTTPoison 和 JSEX 我有以下代码 defmodule
  • Selenium webdriver 窗口处理 c# switchTo 失败

    测试过程中会弹出 2 个窗口 my code string BaseWindow driver CurrentWindowHandle ReadOnlyCollection
  • 未解决的参考 dagger 2 + kotlin + android gradle

    我正在 Android 项目中使用 Kotlin 测试 Dagger 2 我的灵感来自于Android 干净的架构 https github com android10 Android CleanArchitecture回购 我的 grad