使用 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 即时应用程序 的相关文章

  • Firebase 管理 SDK Android

    在 Android 中初始化 Firebase Admin SDK 的代码 Override protected void onCreate Bundle savedInstanceState super onCreate savedIns
  • Android 通知进度条冻结

    这是我正在使用的代码 http pastebin com 3bMCKURu http pastebin com 3bMCKURu 问题是 一段时间后 文件变得更重 通知栏下拉速度变慢 最后它就冻结了 你的通知太频繁了 这就是它冻结的原因 让
  • getItem 与 getItemAtPosition

    有两种方法可以获取列表视图中的选定项目 list getAdapter getItem position list getItemAtPosition position 我的问题是 哪一种是首选的做法 我见过人们同时使用这两种方法 您可以使
  • Android第一次动画不流畅

    我正在尝试一个动画将 imageView 从屏幕底部滑动到屏幕中心 但是当我第一次执行此动画时 它不平滑 但当第二次执行动画时 它是正常且平滑的 我几乎尝试了所有方法 但无法解决我的问题 这是我的动画文件
  • 如何将安卓手机从睡眠状态唤醒?

    如何以编程方式将 Android 手机从睡眠状态唤醒 挂起至内存 我不想获取任何唤醒锁 这意味着手机在禁用 CPU 的情况下进入 真正的 睡眠状态 我想我可以使用某种RTC 实时时钟 机制 有人有例子吗 Thanks 为了让Activity
  • 在意图过滤器中使用多个操作时的默认值

    尝试理解 Android 中的意图和操作并查看文档 http developer android com guide topics intents intents filters html 但我一直看到的一件事是定义了多个操作的意图过滤器
  • 应用程序未安装在 Android 模拟器上

    我正在 android Geocoder 中开发一个应用程序 当我运行该应用程序时 它会显示 2011 01 11 11 08 13 GeoTourProject 自动目标模式 使用现有模拟器 emulator 5554 运行兼容的 AVD
  • Android 版 Robotium - solo.searchText () 不起作用

    我在使用 Robotium 时遇到 searchText 函数问题 我正在寻找这个字符串
  • CookieManager.getInstance().removeAllCookie();不删除所有cookie

    我在应用程序的 onCreate 中调用 CookieManager getInstance removeAllCookie 我遇到了一个奇怪的问题 我看到 GET 请求中传递了意外的 cookie 值 事实上 cookie 值是一个非常非
  • Android Studio:无法启动守护进程

    当我尝试在 Android Studio 中导入 gradle 项目时 遇到以下错误 Unable to start the daemon process This problem might be caused by incorrect
  • Android构建apk:控制MANIFEST.MF

    Android 构建 APK 假设一个 apk 包含一个库 jar 例如 foo jar 该库具有 META INF MANIFEST MF 这对于它的运行很重要 但在APK中有一个包含签名数据的MANIFEST MF 并且lib jar
  • 材质设计图标颜色

    应该是哪种颜色 暗 材质图标 在官方文档上 https www google com design spec style icons html icons system icons https www google com design s
  • 调节麦克风录音音量

    我们正在尝试调整录音时的音量级别 麦克风似乎非常敏感 会接收到很多静电 我们查看了 setVolumeControlStream 但找不到传入其中来控制麦克风的流 将您的音频源设置为 MIC using MediaRecorder Audi
  • 在 Android 上按下电源按钮时,如何防止先调用 onDestroy() 再调用 onCreate()

    我正在记录每个 onCreate 和 onDestroy 调用 我发现 一旦我单击 Android 上的电源按钮 以及模拟器上的电源按钮 我的活动中就会拨打电话 gt onDestroy gt onCreate 这会杀死我的游戏 然后立即从
  • 通过 ADB 拔出设备:“找不到服务”

    我必须测试我的应用程序在打瞌睡模式下的行为 根据文档 https developer android com training monitoring device state doze standby html testing doze 我
  • 应用程序关闭时的倒计时问题

    我制作了一个 CountDownTimer 代码 我希望 CountDownTimer 在完成时重新启动 即使应用程序已关闭 但它仅在应用程序正在运行或重新启动应用程序时重新启动 因此 如果我在倒计时为 00 10 分钟 秒 时关闭应用程序
  • Android中webview的截图方法

    我在 webview 中的 html5 canvas 上画了一些线 并尝试使用下面的代码截取 webview 的屏幕截图 WebView webView WebView findViewById R id webview webView s
  • 保护 APK 中的字符串

    我正在使用 Xamarin 的 Mono for Android 开发一个 Android 应用程序 我目前正在努力使用 Google Play API 添加应用内购买功能 为此 我需要从我的应用程序内向 Google 发送公共许可证密钥
  • 如何将图像从 Android 应用程序上传到网络服务器的特定文件夹中

    如何将图像从 android 移动到 Web 服务器上的指定文件夹 这是我的安卓代码 package com example bitmaptest import java io ByteArrayOutputStream import ja
  • 无法将 admob 与 firebase iOS/Android 项目链接

    我有两个帐户 A 和 B A 是在 Firebase 上托管 iOS Android unity 手机游戏的主帐户 B 用于将 admob 集成到 iOS Android 手机游戏中 我在尝试将 admob 分析链接到 Firebase 项

随机推荐

  • 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 时遇到问题 我的应用程序组件包括我的应用程序的所有功能匕首模块 我基本上有 一个基础应用程序模块包含我的应用程序类