清单合并问题
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" />
就可以了