清单合并问题

2019-03-07  本文已影响0人  syomie
aapt : Manifest merge problem:……Error : uses-sdk : minSdkVersion 14 cannot be smaller than version 15 declared in library ……

在app build.gradle文件下minSdkVersion配置版本低于引用库声明的版本,改到不小于引用库声明的版本即可。


aapt : Manifest merge problem : AndroidManifest . xml Error : Attribute meta-data # APPKEY @ value at AndroidManifest . xml requires a placeholder substitution but no value for <KEY> is provided .

简单说就是在需要合并的某清单需要一个值。 但<KEY>值没有设置,正常情况在app build.gradle defaultConfig下添加

manifestPlaceholders = [
        KEY:"值",
        KEY1:"需要多个可半角逗号分割"
        ]

即可解决。

既然说了正常情况那就肯定有意外,比如某IDE的gradle被阉割了,manifestPlaceholders占位符不自动替换的时候,就需要手动替换了。

比如

aapt : Manifest merge problem : AndroidManifest . xml Error : Attribute meta-data #APPKEY@value at AndroidManifest . xml requires a placeholder substitution but no value for <KEY> is provided .

解决方法就是在主工程的AndroidManifest.xml中application标签中添加

<meta-data android:name="APPKEY" android:value="值" />

然而出现了

aapt : Manifest merge problem : Error : Attribute meta-data # APPKEY @ value value =(值) from AndroidManifest . xml … is also present at AndroidManifest . xml :… value=(${KEY}).Suggestion : add ' tools : replace =" android : value "' to < meta-data > element at AndroidManifest . xml :…to override .

其实出现这个是因为我们的主工程中已经设置了android:name=”APPKEY”的值,而在module中也设置了android:name=”APPKEY”,所以编辑器在运行程序的时候会去合并,但是合并失败就会报此错误。

错误提示中已经给出了解决方案,就在最后一句话中描述了。Suggestion : add ' tools : replace ="android : value"' to <meta-data> element at AndroidManifest.xml:…to override .

即在manifest标签中声明命名空间

xmlns:tools="http://schemas.android.com/tools"

然后将

<meta-data android:name="APPKEY" android:value="值" />

替换为

<meta-data android:name="APPKEY" android:value="值" tools:replace="android:value" />

就可以了

上一篇下一篇

猜你喜欢

热点阅读