【问题标题】:Using android Hilt in a Library (aar)在库中使用 android Hilt (aar)
【发布时间】:2022-06-24 00:49:11
【问题描述】:

我使用 Hilt 创建了一个库。它在独立应用程序中运行良好,但是当我尝试集成到客户端应用程序中时,它开始出现错误

java.lang.RuntimeException: Unable to start activity ComponentInfo{}: java.lang.IllegalStateException: Hilt Activity must be attached to an @HiltAndroidApp Application. Did you forget to specify your Application's class name in your manifest's <application />'s android:name attribute?
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3516)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3668)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)

可能它要求客户端应用程序使用 Hilt 来实现,但我担心的是:

  1. 我不想让客户知道任何有关 Hilt 的信息,
  2. 我不能要求客户集成 Hilt

Is Hilt 尚不支持 AAR 文件。 ?

【问题讨论】:

    标签: android android-library aar dagger-hilt


    【解决方案1】:

    你不能。正如堆栈跟踪指定的那样

    Hilt Activity 必须附加到 @HiltAndroidApp 应用程序

    Hilt 需要应用程序类上的@HiltAndroidApp 注释来开始生成他的注入代码。没有它,也没有将 Hilt 作为项目依赖项导入,注入根本不会启动。 不幸的是,在库中使用 hilt 并不是一个好习惯,因为您应该处理不支持 hilt 的情况,或者强制您的库用户更改其架构以适应您的库。

    以下是有关此主题的一些反馈。 https://github.com/google/dagger/issues/2132#issuecomment-704546736

    【讨论】:

      猜你喜欢
      • 2020-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-10
      • 2015-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多