2015年9月10日木曜日

ライブラリで指定された AndroidManifest の属性を置き換える

利用しているライブラリで android:allowBackup="true" が指定されているときに、自分のアプリで android:allowBackup="false" を指定するとマニフェストのマージに失敗してビルドエラーになります。
> Manifest merger failed : Attribute application@allowBackup value=(false) from AndroidManifest.xml:22:9-36
   is also present at [利用しているライブラリ] AndroidManifest.xml:9:18-44 value=(true)
   Suggestion: add 'tools:replace="android:allowBackup"' to  element at AndroidManifest.xml:21:5-83:19 to override

エラーメッセージの Suggestion にあるように tools:replace="android:allowBackup" をつけるとアプリ側の設定が利用されエラーが解消します。
  1. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     xmlns:tools="http://schemas.android.com/tools"  
  3.     package="net.yanzm.sample">  
  4.   
  5.     <application  
  6.         android:allowBackup="false"  
  7.         tools:replace="android:allowBackup"  
  8.         ...>  
  9.   
  10.         ...  
  11.   
  12.     </application>  
  13.   
  14. </manifest>  
その他の tools 属性なども Attributes markers examples に載っています。


0 件のコメント:

コメントを投稿