gpt4 book ai didi

android - 如何在应用程序中使用库的 manifestPlaceholders?

转载 作者:太空狗 更新时间:2023-10-29 15:29:12 29 4
gpt4 key购买 nike

我正在尝试添加 OneSignal SDK到我的 Android 库项目。因此,我在我的库的 build.gradlemanifestPlaceholders 中添加了必要的依赖项:

        // One Signal:
manifestPlaceholders = [onesignal_app_id: "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
// Project number pulled from dashboard, local value is ignored.
onesignal_google_project_number: "XXXXXXXXXXXX"]

问题是,当我尝试构建一个演示应用程序,该应用程序使用我添加了 OneSignal 的库时,出现以下错误:

/path_to_project/demoapp/demoapp/src/main/AndroidManifest.xml Error:
Attribute meta-data#onesignal_app_id@value at AndroidManifest.xml requires a placeholder substitution but no value for <onesignal_app_id> is provided.
/path_to_project/demoapp/demoapp/src/main/AndroidManifest.xml Error:
Attribute meta-data#onesignal_google_project_number@value at AndroidManifest.xml requires a placeholder substitution but no value for <onesignal_google_project_number> is provided.

See http://g.co/androidstudio/manifest-merger for more information about the manifest merger.

:demoapp:processDebugManifest FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':demoapp:processDebugManifest'.
> Manifest merger failed with multiple errors, see logs

我没有手动向任何 AndroidManifest.xml 添加任何内容(无论是应用程序还是库)。

我想在我的库中使用 OneSignal SDK 并能够将我的库添加到任何应用程序,以便 onesignal_app_idonesignal_google_project_number 对于所有使用我的应用程序都是相同的图书馆。我怎样才能做到这一点?

最佳答案

我遇到了和你一样的问题。经过一些研究,有一个解决方案。

您可以在您自己的 list 中覆盖您的库的配合数据,如下所示:

<meta-data
android:name="onesignal_app_id"
android:value="${onesignal_app_id}"
tools:replace="android:value"/>

tools:replace="android:value" 属性允许您覆盖库的 list 元数据。

然后您可以在自己的 gradle 文件中定义 manifestPlaceholders。

关于android - 如何在应用程序中使用库的 manifestPlaceholders?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41616713/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com