繁体   English   中英

在库中使用 android Hilt (aar)

[英]Using android Hilt in a Library (aar)

我使用 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

Hilt 是否还没有在 AAR 文件中支持。?

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM