我有两个单独工作的android项目(A和B)。我已经创建了一个带有两个按钮的父项目,用于调用每个子项目(我已经将子项目作为库包括在内)。最初,我在父项目中添加了一个子项目,它工作得很好。然而,在添加第二个子项目时,我得到了一个android清单合并错误。每个子应用程序都需要一个SDK密钥才能在启动时注册。这在清单中定义如下:
子应用A:
<application
android:name=".DemoApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:replace="android:icon">
<!-- DJI SDK -->
<uses-library android:name="com.android.future.usb.accessory" />
<meta-data
android:name="com.dji.sdk.API_KEY"
android:value="f70d587986XXXXXXXXXX"/>子应用程序B:
<application
android:name=".DJIDemoApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<!-- DJI SDK -->
<uses-library android:name="com.android.future.usb.accessory" />
<meta-data
android:name="com.dji.sdk.API_KEY"
android:value="2cde5eaabXXXXXXXXXXXX" /> //TODO: Enter your app key hereandroid清单给出的错误似乎与元数据部分的API_KEY值有关。我的猜测是,在清单合并时,它不知道要使用API_KEY的哪个值。但是,我需要这两个值来注册应用程序A和B。我尝试将'tools:replace=android:value‘添加到其中一个子应用程序,但编译后的应用程序只运行一个子应用程序。具体错误如下:
Error: Attribute meta-data#com.dji.sdk.API_KEY@value value=(f70d587986XXXXXXXXXX) from AndroidManifest.xml:34:55-95 is also present at AndroidManifest.xml:34:55-95 value=(2cde5eaabXXXXXXXXXXXXX). Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml:34:9-97 to override. app main manifest (this file), line 33我是android新手,不知道如何解决这个问题。任何关于这方面的帮助都将受到高度的感谢。
发布于 2017-10-07 18:46:42
将“tools:replace="android:value"”添加到AndroidManifest.xml处的元素
此错误由以下原因引起
<meta-data
android:name="com.dji.sdk.API_KEY"
android:value="2cde5eaabXXXXXXXXXXXX" />两个文件中的prensent
https://stackoverflow.com/questions/46595779
复制相似问题