使用 Jack 时未生成 Dagger 2 组件

2024-05-01

当我启用杰克编译器 https://source.android.com/source/jack.html在Android Studio 2.2中Dagger 2 https://google.github.io/dagger/组件未生成。 Dagger 2 可以和 Jack 一起使用吗?如果是这样,我将如何配置我的应用程序?

从我的应用程序build.gradle:

jackOptions {
     enabled true
   }

 compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

我花了两天时间才弄清楚这个问题。所以我回到这里发布调查结果,以防节省某人的时间:

这是由一个Jack 中的错误导致类路径无法正常工作 https://code.google.com/p/android/issues/detail?id=213471。它与 Jack “进程内”运行有关(与 gradle 守护进程在同一个 JVM 中)。环境android.defaultConfig.jackOptions.jackInProcess为 false 确实超出了“先决条件”错误,但它会导致其他问题(2 个 JVM 占用系统资源)&bugs https://code.google.com/p/android/issues/detail?id=207493破坏其他构建(worse https://stackoverflow.com/questions/40640783/build-errors-when-switching-from-buildtoolsversion-24-0-2-to-anything-higher) ways.

目前,最好的解决方案似乎是:

  • 等待 Android gradle 插件的 2.3 版本,它已经修复了这个问题。
  • 同时将 Dagger 降级到 v2.2。
    这是最高版本,似乎避免了番石榴与杰克的冲突。

编辑:2017 年 1 月 14 日更新:
我在使用 Jack 时遇到了其他几个问题,并且厌倦了它,所以我改用了 Retrolambda,并责怪自己不早点这样做!现在,杰克造成的问题似乎比它解决的问题还要多。只需添加带加号的行并删除带减号的行,您就可以返回到 Dagger 2.8,同时等待 Jack 开始行动!

+plugins {
+    id "me.tatarka.retrolambda" version "3.4.0"
+}

 apply plugin: 'com.android.application'
+apply plugin: 'me.tatarka.retrolambda'

-        jackOptions {
-            enabled true
-        }

为了更快地构建 Retrolambda,请添加org.gradle.jvmargs=-Xmx4608M给你的gradle.properties文件,以便 deshing 可以在进程中进行。现在,我使用的是 Dagger 2.8,我的干净的构建只有12秒,祝你摆脱困境,杰克!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Jack 时未生成 Dagger 2 组件 的相关文章

  • 在名称中使用时间戳时,Android Studio 在构建后无法启动应用程序

    我遇到了 gradle 和 Android Studio 的问题 该问题仅在 Android Studio 中构建时出现 BuildServer 和 Commandline 工作正常 applicationVariants all vari
  • OPENGL ES 不工作:无当前上下文

    我尝试了 OpenGL ES2 for Android 一书中所示的程序 但它不起作用 我已经在Odroid E 三星s3 三星y 三星star上进行了测试 the gl version suported returns 2 but i g
  • Android向后兼容技术

    我现在在开发基于最新 API 15 ICS 的 15 项活动 Android 应用程序方面取得了进展 现在我发现应用程序的主要功能主义者即使支持 android v4 也不向后兼容 例如 1 fragment事务动画 2 将StringSe
  • 毕加索磁盘缓存

    我正在使用 Picasso 从 URL 加载图像 Picasso with getApplicationContext load product getImageUrl into imageView 据我所知 每次都会访问该网址 而不是缓存
  • 如何忽略 LeakCanary 中的某些类?

    有人能给我一个如何忽略 LeakCanary 中的某些类的有效示例吗 我正在查看这个示例 以忽略 LeakCanary 中第三方库中的某些类 但我不知道将其放在应用程序中的何处 我把它放在我的应用程序类中 但这些变量和方法有错误 isInA
  • 如何在 Android 应用程序中单击按钮时打开 Gmail Compose?

    当我的 Android 应用程序中单击按钮时 我尝试打开 Gmail 撰写屏幕 我需要 Google 提供的 API 密钥吗 或者我需要在按钮 onClickListener 中做什么 任何形式的见解都非常值得赞赏 正如 JeffC 指出的
  • FLAG_ACTIVITY_REORDER_TO_FRONT 被忽略

    我有一个包含项目列表的 FragmentActivity 当应用程序处于后台时 可以推送该项目列表 发生这种情况时 我想创建一个状态栏通知并提醒用户更新 当用户单击通知时 活动应重新排序到前面并显示在屏幕上 同时在列表底部显示新项目 所以我
  • 在 Android 中始终以横向模式打开相机

    在我的 Android 应用程序中 单击按钮后我希望相机以横向模式打开 即使我将手机旋转为纵向模式 相机也应始终处于横向模式或纵向模式 使用此代码在横向模式下打开相机 Intent cameraIntent new Intent Media
  • Android - 多次实例化一个片段?

    我正在创建一个在 ListView 中显示数据的应用程序 数据分为两种类型 热门 收藏夹 我有一个活动和两个片段 片段根据类别显示项目列表 我为此使用了 ListView 然后我有两个fragment layouts 它们在设计上完全相同
  • Spotify 登录错误 INVALID_CLIENT:无效的重定向 URI android

    我正在制作一个包含 Spotify 集成的应用程序 我点击了此链接https developer spotify com technologies spotify android sdk tutorial https developer s
  • 如何更改 Android 12 启动屏幕中的图标形状?

    我想要矩形形状的启动屏幕图标 而不是 android 12 中的圆形形状 我不相信你可以 如果你看这里的第 3 点 https developer android com about versions 12 features splash
  • 在片段之间切换时底部导航栏会向下推

    在我的活动中 我有一个底部导航栏和框架布局来显示片段 一切正常 但问题是当我开始按顺序从 1 4 移动时 底部导航栏保持在其位置 但当我突然从 4 跳到2 然后底部导航栏就会超出屏幕 当再次单击同一项目时 它就会回到正常位置 该视频将清楚地
  • 如何在 onDraw() 方法中定义与像素无关的高度

    我扩展了 View 来构建自定义小部件 我想用独立的像素单位定义小部件的高度 我认为可以通过将像素密度乘以所需的高度来完成 但我不知道该怎么做 到目前为止我所拥有的 最小化 public class Timeline extends Vie
  • 应用程序中空指针异常[重复]

    这个问题在这里已经有答案了 我正在尝试在我的应用程序中实施应用程序内计费 我写了这段代码 public class Settings extends PreferenceFragment ServiceConnection mService
  • 使用 RecyclerView.Adapter 在 onBindViewHolder() 内设置 onItemClickListener

    我有一个自定义对象 学生班 public class Student private String name private String age public String getName return name public void
  • 动态创建 JSON 对象

    我正在尝试使用以下格式创建 JSON 对象 tableID 1 price 53 payment cash quantity 3 products ID 1 quantity 1 ID 3 quantity 2 我知道如何使用 JSONOb
  • 制作弹跳动画

    我想做图层的弹跳动画 我已经完成了该图层从右到中心的操作 现在我想将其向后移动一点 然后回到中心 这会产生反弹效果 我想我可以用这样的翻译来做到这一点
  • 在android中使用BaseActivity的不同活动中的通用标头

    我想编写一次代码并在不同的活动中使用 我创建了一个Base Activity class为了那个原因 此外 不同活动中所有布局的标题都是相同的 我在以下人员的帮助下做到了这一点
  • Android Jasper 报告

    Jasper Reporting 可以集成到 Android 应用程序中吗 我正在尝试从 jrxml 文件生成 PDF CSV 文本和 XLS 报告 但是 我没有看到 Android SDK 支持 net sf jasperreports
  • Android Espresso - 如果未选中,请单击复选框

    I have onView withId R id check box perform click 但我只想在尚未选中该复选框时执行此操作 我怎样才能在浓缩咖啡中做到这一点 我还想根据其之前的状态来切换复选框 开关 起初 我尝试用此方法打开

随机推荐

  • Hibernate加载惰性代理,但我只需要PK

    我有这些实体 Entity public class Room ManyToOne optional true fetch FetchType LAZY private Player player1 Entity public class
  • 如何使用openJDK11运行Eclipse?

    怎样必须eclipse ini看起来像是让 Eclipse Photon 2018 09 或 2018 12 在 openJDK11 上运行 我已经安装了 openJDK 11 0 1 和 Eclipse 2018 09 我有一个包含 XM
  • Java Swing并发显示JTextArea

    我需要执行 显示从 Arraylist 到 JTextArea 的一系列事件 但是 每个事件的执行时间不同 以下是我的目标的一个简单示例 public void start ActionEvent e SwingUtilities invo
  • 读/写结构到文件 - c

    我正在用 C 语言创建一个学生数据库 我需要做的最后一件事是能够读取我创建的数据库并将其写入文件 所以我已经有了一个充满指向学生结构的指针的数组 我需要将其写入文件 一旦我写完它 我也需要能够将它读回到我的数组中 我真的不知道该怎么做 这是
  • Google Colab:为什么 CPU 比 TPU 快?

    我正在使用 Google colabTPU训练一个简单的Keras模型 删除分布式strategy并在CPU比TPU 这怎么可能 import timeit import os import tensorflow as tf from sk
  • 我什么时候应该声明一个不带 noexcept 的移动构造函数?

    该标准不会在移动构造函数上强制执行 noexcept 在什么情况下移动构造函数可以抛出异常 当你真的别无选择的时候 大多数时候你的移动构造函数应该是noexcept 它们是默认的 看这个 http www codingstandard co
  • 更改 UITextField 占位符颜色

    如何动态更改占位符颜色UITextField 这始终是相同的系统颜色 xib 编辑器中没有选项 来自文档 property 非原子 复制 NSAttributedString attributedPlaceholder 该属性默认为零 如果
  • 为什么 SwiftMailer 发送两封电子邮件?

    我通过 PHP 的 SwiftMailer 库发送电子邮件 我有这个 PHP 代码 用于从 1 个发件人向 1 个电子邮件收件人发送 1 封电子邮件 这是代码 email some email recipient sendEmail sen
  • 你能限制 TypeScript 全局类型的范围吗?

    我们的团队已经配置了 TypeScript 来使jest全球可用的类型 tsconfig json types jest testing library jest dom 这真的很好 test ts文件 但今天我意识到它也接受jest 和相
  • Python ggplot 和 ggplotly

    前 R 用户 我曾经通过 ggplotly 函数广泛组合 ggplot 和plot ly 库来显示数据 刚接触 Python 时 我看到 ggplot 库可用 但找不到与用于图形反应显示的绘图简单组合的任何内容 我想要寻找的是这样的 fro
  • Postgresql:如何从时间戳、时区字段正确创建带有时区的时间戳

    我有一个带有时间戳但没有时区的表 年 月 日 时 分 秒 以及 时区 字段 P 代表太平洋 M 代表山地 我需要创建一个 带有时区的时间戳 类型的字段 鉴于我有两个字段 有没有办法正确考虑夏令时 具体来说 时间戳 2013 11 03 01
  • 适用于 Android 的 Google Analytics API v4 不发送屏幕视图

    我已经为 google Analytics api v4 设置了所有内容 如下所示 https developers google com analytics devguides collection android v4 https de
  • 将数组大小定义为用户输入的变量合法吗?

    我认为数组的大小应该是恒定的 我在 VS 2019 中编写代码 甚至当我执行以下操作时 const int size 5 int number size 我会收到这个错误expression must have a constant val
  • 如何将父小部件焦点重定向到子小部件?

    有一个简单的类叫做FloatingPointPropertyEditor 它继承的是QWidget并包含一个QLineEdit带有浮点数验证器的实例 class FloatingPointPropertyEditor public QWid
  • move_uploaded_file() 无法打开流

    我正在尝试通过 POST 通过 Pycurl 上传文件 在接收端使用 PHP 脚本 由于某种原因 PHP 部分似乎会导致错误 我将其精简为两个简短的测试脚本 import pycurl UPLOADURL http 127 0 0 1 ne
  • ASP.NET CLR 未启用

    当我运行我的应用程序时 在新安装的 ASP Net 和 SQL Server 上出现以下错误 Execution of user code in the NET Framework is disabled Enable clr enable
  • 无法从Windows 10 cmd运行python程序

    这是我电脑上安装python的路径A software installation python并且在环境变量中的系统路径中添加了相同的路径 我的脚本存储在A python programs但是当我尝试从 Windows 命令提示符 cmd
  • Windows/C++:是否可以找到抛出具有“异常偏移”的异常的代码行

    我们的一位用户在我们的产品启动时遇到异常 她从 Windows 向我们发送了以下错误消息 Problem Event Name APPCRASH Application Name program exe Application Versio
  • 在一组行中悬停突出显示效果

    我有一张相当大的桌子 由data属性看起来像这样 table tr td td tr tr td td tr tr td td tr tr td td tr tr td td tr tr td td tr table 我事先并不知道可能的组
  • 使用 Jack 时未生成 Dagger 2 组件

    当我启用杰克编译器 https source android com source jack html在Android Studio 2 2中Dagger 2 https google github io dagger 组件未生成 Dagg