使用 Dagger 中的应用程序组件构建 Android 即时应用程序

2024-04-05

我目前正在尝试 InstantApps,并希望将 dagger 包含到我的项目中。

我在设置应用程序 AppComponent 时遇到问题。我的应用程序组件包括我的应用程序的所有功能匕首模块。

我基本上有:

  • 一个基础应用程序模块包含我的应用程序类
  • 多种功能每个活动都有一个 dagger 模块,所有模块都以 Base 作为依赖项。
  • 一个应用程序模块和即时模块都导入所有功能和基本应用程序模块。

我试图在添加即时应用程序模块之前弄清楚设置。

来自 InstantApps 文档和项目示例。看来 Application 类需要位于 Base 中。从 Dagger 文档,设置 dagger:

 DaggerYourAppComponent.create().inject(this);

应包含在您的应用程序类中。然而,这似乎是不可能的,因为 AppComponent 需要引用所有功能匕首模块。

My 问题 are:

  • 我应该在哪里添加我的 AppComponent dagger 模块?
  • 我应该将我的应用程序保留在应用程序模块中而不是放在 Base 中吗?
  • 有任何关于 Dagger with Instant Apps 的 GitHub 存储库或文档吗?

谢谢


  • 即时应用程序非常支持 Dagger2。您可以为每个功能模块创建组件类和相应的 Dagger 提供程序类,以公开每个功能模块的组件类实例。
  • 每个模块组件类都可以为仅包含在该功能模块中的类声明注入方法。
  • 此外,您还可以在 用于应用范围注入的基础模块。
  • 应用程序组件类可以在 应用程序类包含在基本模块中并暴露给其他模块 通过应用程序类中的静态方法来功能模块。

下面是使用即时应用程序进行 Dagger2 注入的示例代码,以使事情更加清晰。https://github.com/willowtreeapps/android-instant-apps-demo https://github.com/willowtreeapps/android-instant-apps-demo

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

使用 Dagger 中的应用程序组件构建 Android 即时应用程序 的相关文章

  • 如何为ScrollView放置固定图像背景?

    我应该想要滚动视图滚动 而不是背景中的图像 将图像添加到滚动视图框架之前的视图层次结构的较高位置
  • 如何快速自动发送FCM或APNS消息?

    我正在开发一项后端服务 通过 FCM 或 APNS 向移动应用程序发送推送通知 我想创建一个可以在一分钟内运行的自动化测试 并验证服务器是否可以成功发送通知 请注意 我不一定需要检查通知是否已送达 只需检查 FCM 或 APNS 是否已成功
  • React Native 从 JavaScript 代码内部访问 strings.xml

    有没有办法访问当前值android app src main res values strings xml从 JavaScript 代码内部 我想为每个构建放置不同的端点 URL 但我什至无法检测到反应本机代码内的构建类型 而不必求助于 D
  • StrictMode 策略违规:我的应用程序中存在 android.os.strictmode.LeakedClosableViolation?

    Android 开发新手 第一次在我的应用程序上尝试 StrictMode 我注意到以下内容 并想知道这是否是我的应用程序或库中的问题 我不太清楚 谢谢你 D StrictMode StrictMode policy violation a
  • 在 ViewPager Fragments 中使用 Master/Detail 模板(下载链接)

    工作代码 https github com lukeallison ViewPagerMasterDetail https github com lukeallison ViewPagerMasterDetail Android 主 详细流
  • 找不到处理意图 com.instagram.share.ADD_TO_STORY 的活动

    在我们的 React Native 应用程序中 我们试图让用户根据视图 组件中的选择直接将特定图像共享到提要或故事 当我们尝试直接使用 com instagram share ADD TO FEED 进行共享时 它以一致的方式完美运行 但是
  • Android 中 Kotlin 协程的正确使用方式

    我正在尝试使用异步更新适配器内的列表 我可以看到有太多的样板 这是使用 Kotlin 协程的正确方法吗 这个可以进一步优化吗 fun loadListOfMediaInAsync async CommonPool try Long runn
  • 在 java 类和 android 活动之间传输时音频不清晰

    我有一个android活动 它连接到一个java类并以套接字的形式向它发送数据包 该类接收声音数据包并将它们扔到 PC 扬声器 该代码运行良好 但在 PC 扬声器中播放声音时会出现持续的抖动 中断 安卓活动 public class Sen
  • 是否必须删除 Intent extra?

    这可能是一个愚蠢的问题 但是是否有一条规则规定消费活动必须显式删除 Intent 额外内容 或者只有在回收 Intent 对象时才如此 换句话说 如果我总是通过执行以下操作来链接到下一个活动 Intent i new Intent MyCu
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • 无法访问 com.google.android.gms.internal.zzbfm 的 zzbfm 类文件未找到

    我正在将我的 Android 应用程序项目从GCM to FCM 为此 我使用 Android Studio 中的 Firebase 助手工具 并遵循 Google 开发人员指南中的说明 一切都很顺利 并将我的应用程序代码更改为FCM根据助
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 在gradle插件中获取应用程序变体的包名称

    我正在构建一个 gradle 插件 为每个应用程序变体添加一个新任务 此新任务需要应用程序变体的包名称 这是我当前的代码 它停止使用最新版本的 android gradle 插件 private String getPackageName
  • 如何使用 IF 检查 TextView 可见性

    我有一个 onCheckedChangeListener 来根据选择的单选按钮显示文本视图 我有 1 个疑问和 1 个难题 想知道是否有人可以帮助我 问题 您能否将单选组默认检查值设置为 否 单选按钮 以便一开始就不会检查任何内容 问题 如
  • 如何发布Android .aar源以使Android Studio自动找到它们?

    我正在将库发布到内部 Sonatype Nexus 存储库 Android Studio 有一个功能 可以自动查找通过 gradle 引用的库的正确源 我将 aar 的源代码作为单独的 jar 发布到 Nexus 但 Android Stu
  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 实现滚动选择 ListView 中的项目

    我想使用 ListView 您可以在其中滚动列表来选择一个项目 它应该像一个 Seekbar 但拇指应该是固定的 并且您必须使用该栏来调整它 我面临的一个问题是 我不知道这种小部件是如何调用的 这使得我很难搜索 所以我制作了下面这张图片 以
  • 将 Intent 包装在 LabeledIntent 中以用于显示目的

    要求 我的应用程序中有一个 共享 按钮 我需要通过 Facebook 分享 我需要选择是否安装原生 Facebook 应用程序 我们的决定是 如果未安装该应用程序 则将用户发送到 facebook com 进行分享 当前状态 我可以检测何时
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • Spring @ContextConfiguration 如何为 xml 放置正确的位置

    在我们的项目中 我们正在编写一个测试来检查控制器是否返回正确的模型视图 Test public void controllerReturnsModelToOverzichtpage ModelAndView modelView new Mo
  • 并发程序不同制作方式的差异

    有什么区别 开始一个新线程 使用 TPL 使用后台工作者 所有这些都创建了并发性 但是它们之间的低级差异是什么 无论如何 这 3 个线程都会创建线程吗 Thanks 它们都在内部使用线程 区别在于每个 API 的抽象级别以及线程的使用方式
  • 在 Flask 框架中向用户发送文件会出现 UnicodeEncodeError

    我想在用户单击适当的按钮时向他发送一个文件 并且我正在起诉以下内容 Prepare selected file for download send file home nikos wsgi static files filename 但无论
  • 在不同的服务器上执行相同的 php 脚本的最佳方法是什么?

    我有一个名为 MY SCRIPT 的脚本 由于性能问题 我需要将其上传到不同的服务器 A B 和 C 上 该脚本对于所有服务器都是相同的 减少维护的最佳方法是什么 我在想 你怎么看待这件事 使用部署工具自动将此文件部署到多个服务器 就像是A
  • Facebook OAuth2 中 access_token 的长度是多少?

    我在 Google 和 StackOverflow 上搜索以找到问题的答案 但找不到 我想将 access token 存储到我的数据库中以供离线访问 并且我想确保指定列的正确长度 我什至无法确定它只是一个数字还是数字和字符串的混合 我在
  • Spring 自动添加“X-Total-Count”标头

    我正在为我的 Web 应用程序使用 admin on rest UI 它有以下限制 注意 jsonServer REST 客户端期望 API 包含 响应 GET LIST 调用中的 X Total Count 标头 该值必须 是集合中资源的
  • Android:BLE如何读取多个Characteristic?

    用于读取某些特征的 Android BLE API 方法本质上是异步的 当您请求某些值时 将调用您的 GATT 回调方法 如果您请求多个读取特征值 它只会丢弃其他值 直到它不满足第一个请求为止 如果有人知道我们应该采用哪种设计模式来解决这个
  • 链接时,“获取您需要的内容”和“获取全部”(-Wl,--whole-archive)之间是否存在某种关系?

    我有这个库 其中涉及一些需要在之前运行的静态初始化代码main 如果您只是将所有翻译单元编译在一起 那么一切都很好 但是如果我提供静态库 a文件 并让用户将他们的应用程序链接到它 链接器只是忽略执行静态初始化的符号 或者 我可以让链接器拾取
  • 检查文件夹,然后在 Python 中创建一个隐藏文件夹

    我无法让这个东西为我的一生创建这个隐藏文件夹 它完成时没有任何错误 只是无法让它创建文件夹 import os import ctypes import subprocess import urllib from subprocess im
  • 问:如何从表中排除人名

    我正在尝试使用 bigquery 通过 gdeltv2 数据集查找 4 个以色列新闻网站中被提及最多的 10 个人 我成功获得了被提及最多的 10 个人 现在我想从前 10 名名单中排除两个人 Maccabi Haifa 和 Reuben
  • 故障转移组辅助实例上的 Azure SQL 托管实例 CLE 的解密问题

    我们有一个带有主实例和辅助实例的 Azure SQL 托管实例故障转移组设置 我遇到的问题是我们对某些数据库表列使用单元格 列 级加密 CLE 我有限的理解是 这些的解密取决于服务主密钥 我认为问题在于数据库主密钥使用服务主密钥进行加密 然
  • Mac OS X 上的 Mono - 并行 HTTP 下载限制为 2

    我正在使用 Mono 开发一个可以同时下载多个文件的程序 适用于 Mac OS X 和 Debian 然而 尽管我使用了构造函数 但我只能同时下载 2 个文件new RollingDownload 10 我正在使用的代码是这样的 using
  • 如何改进MySQL中的Limit子句

    我有posts有 10k 行的表 我想通过它创建分页 因此 我为此目的有下一个查询 SELECT post id FROM posts LIMIT 0 10 When I Explain该查询我得到下一个结果 所以我不明白为什么 MySql
  • NetBeans 14 - 无法自动设置 JavaFX 平台

    我多年来一直在研究这个问题 但我发现的所有教程似乎都不起作用 当我尝试使用 JDK 18 和适用于 Windows 的最新 JFX 下载在 Netbeans 14 中创建新的 JavaFX 项目时 https gluonhq com pro
  • 如何在 iOS 4 上获取更新 NSUserDefault?

    我正在开发一个iPhone应用程序 由于多任务 我在iOS4上遇到了问题 此应用程序具有在 Settings bundle 中定义的默认设置 如果我运行我的应用程序 那么我就会离开它 所以它会进入后台 我将更改设置并重新启动应用程序 它退出
  • 根据最后一行的条件触发电子邮件警报“不工作”

    我尝试构建一个脚本 但存在一些问题 表格格式为两列 即日期和值 这些是需求 理想状态 抓住 Google 表格中名为 test 的最后一个填充行 今天的日期 如果 F 列中的值大于 0 5 请检查该行 如果大于 0 5 则触发电子邮件 在电
  • Camel Restlet maxThreads 组件选项

    我有个问题 apache Camel 文档指出 camel restlet 组件 从 2 10 版本开始 可以定义服务请求的最大线程数 http camel apache org restlet html 我该如何指定这个参数 这是我制定的
  • Magrittr 转发管道无法将值转发到 openXL::addWorksheet - “错误...:第一个参数必须是工作簿”

    magrittr似乎无法将 工作簿 类对象通过管道传输到addWorkbook包中的函数openxlsx 别介意为什么我需要使用 excel 哎哟 例如 要写InsectSprays使用 基本 语法将数据集转换为 Excel 文件 libr
  • 解析和计算布尔集定义

    说我有一套S定义为字符串 例如如下 S A or B and not A and C 其中 A B 和 C 是有限集 例如 A 0 1 B 0 2 C 1 3 如果我们分析S一步一步 我们有 A or B 0 1 2 A C 1 not A
  • 使用 Dagger 中的应用程序组件构建 Android 即时应用程序

    我目前正在尝试 InstantApps 并希望将 dagger 包含到我的项目中 我在设置应用程序 AppComponent 时遇到问题 我的应用程序组件包括我的应用程序的所有功能匕首模块 我基本上有 一个基础应用程序模块包含我的应用程序类