ひらい ぶらり Hi-Library

ぷろぐらみんぐについて。ときどきどうでもいいことについて。

manifestのproviderのandroid:authorityesにvalues/strings.xmlに定義した文字列を使うとインストールに失敗する

BuildTypeをreleaseでapeをビルドしようとしたら、lintでMissingTranslationとか出てコケた。 values-jaとか作ったら、全てのkeyがvaluesにあるものと一致しないとコケるようだ。そこはよろしくvaluesの値を使って欲しい。

どうやらこの警告は無視してビルドすることも出来るようだけど、気持ち悪いのでやりたくない。 仕方ないので、valuesと一致するように全ての項目をvalues-jaにも記述してビルドしてみる。

INSTALL_PARSE_FAILED_MANIFEST_MALFORMED

( ´゚д゚`)

チクチク原因を探っていったところ、manifest.xmlproviderタグのauthoritiesにstrings.xmlに記述している値を使っているところがダメらしい。 values-ja ディレクトリにあるauthoritiesに使用している項目を削除したところ動作した。 authoritiesに指定する文字列は多言語化されて一意に特定出来ない場合はエラーにされるっぽい。

とはいえ、この項目はProductFlavor毎に分けたいところだったりするので、strings.xmlに書けないのツライ。仕方ないので今回はbuild.gradleの方に書くことで避ける事にしたけどこれはなんかキモい。 どうにかならんもんか・・・