1

我正在做一个图书馆。我正在使用 Hilt。示例应用程序已完成,我只是想将其作为模块分开,以便稍后将其作为库。

但是,Hilt 需要创建 Application 并设置如下:

@HiltAndroidApp
class MyApplication : Application() {
    override fun onCreate() {
        super.onCreate()
    }
}

使用 HiltAndroidApp。

我的客户公司只是想打开一些我将从图书馆提供的活动。如果客户公司开始使用“hilt”,那么该项目将需要修复许多我们不想面对的部分。

客户端可能有也可能没有Application文件。所以,我需要考虑这两种情况。

例如,客户可能有

  1. 没有什么
  2. 使用刀柄
  3. 使用匕首或其他 DI。

在他们的应用程序文件中。

是否有任何解决方案我仍然可以将刀柄用于库并且客户没有任何改变?

当我测试时,它会导致:

Manifest merger failed : Attribute application@name value=(com.example.client.MyApplication) from AndroidManifest.xml:12:9-63
    is also present at [:my_sdk] AndroidManifest.xml:18:18-73 value=(com.example.sdk.MyApplication).
    Suggestion: add 'tools:replace="android:name"' to <application> element at AndroidManifest.xml:11:5-44:19 to override.

com.example.client.MyApplication是示例应用程序。`com.example.sdk.MyApplication' 是模块。

当我尝试使用它时,tools:replace="android:name它只是从字面上替换并没有解决。

4

0 回答 0