如何解决清单合并失败并出现多个错误,请参阅日志 - 外部库

how to resolve Manifest merger failed with multiple errors, see logs - external library

提问人:BRDroid 提问时间:8/25/2022 更新时间:8/25/2022 访问量:95

问:

当我构建我的项目时,我收到一个错误 - 。Manifest merger failed with multiple errors, see logs

当我查看合并清单时,错误出现在具有意图过滤器的外部库上,我需要添加instabugandroid:exported="true"

如何在不将其添加到外部库 instabug 的情况下解决此问题。

错误

Error: android:exported needs to be explicitly specified for element <activity#com.instabug.bug.view.reporting.ReportingContainerActivity>

Instabug 清单文件

<activity
            android:name="com.instabug.bug.view.reporting.ReportingContainerActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:launchMode="singleTask"
            android:theme="@style/InstabugSdkTheme"
            android:windowSoftInputMode="adjustResize" >
            <intent-filter>
                <data
                    android:host="instabug-disclaimer.com"
                    android:scheme="instabug-bug" />
                <data
                    android:host="instabug-disclaimer.com"
                    android:scheme="repro-steps-disclaimer" />

                <category android:name="android.intent.category.DEFAULT" />

                <action android:name="android.intent.action.VIEW" />
            </intent-filter>
        </activity>

项目中的 Instabug 版本

implementation("com.instabug.library:instabug:10.4.1")

   compileSdkVersion(32)
   minSdkVersion(23)
   targetSdkVersion(32)

你能建议我如何解决这个问题吗?

谢谢 R

android gradle android-gradle-plugin android-manifest

评论


答:

0赞 user496854 8/25/2022 #1

我认为有几种方法可以做到这一点,但我不确定第一种方法是否有效:

  1. 将声明从库源清单复制到您自己的清单中。然后在您自己的清单中,设置标志。正如我所说,我不确定这是否真的会编译,但值得一试com.instabug.bug.view.reporting.ReportingContainerActivityexported
  2. 从 gradle 中删除 instabug implementation() 指令,然后下载完整的源代码,并将其作为库导入到您的应用中。然后,您可以完全编辑该库的清单。这种方法的缺点是无法轻松更新库。每次有新版本时,都必须重新下载源代码,然后再次修改清单