Android Marketに作成したapkをアップしようとしたら、以下のようなエラーが発生しました。
The file is invalid: W/ResourceType( 1219): Failure getting entry for 0x7f040000 (t=3 e=0) in package 0 (error -75) ERROR getting 'android:label' attribute: attribute is not a string valueググって調べてみても、原因がいまいちはっきりしなかったのですが、これまでの開発経験からXMLに問題があることは予想がついたので調査しました。
で、突き詰めて調べたところ、原因が無事判明。
原因は、res/values/string.xmlに記述された属性データと、res/values-ja/string.xmlに記述された属性データが異なっていたからでした。
要は、日本語ファイルと英語ファイルで、属性の有無に差があったということです。そもそもの原因は、アップデートするapkファイルのversionでは英語対応をするつもりはなく、英語版はstring.xmlファイルだけ用意しておこうと考えたことでした。
アプリで英語対応をするなら、日本語のstring.xmlと同じ属性を、英語のstring.xmlファイルにも全て記述しないといけません。
本来であれば、string.xmlが記述されていない箇所でアプリが落ちて終了。なのですが、AndroidManifest.xmlで指定してあるstring.xmlの属性データが一致していないと、AndroidMarketにupdate出来なくなる仕様にAndroid Marketはなっているようです。
気をつけてほしいのは、この場合、エミュレーターや端末では問題なく動いてしまうということです。
ネット上には、Rファイルを消してみろとか、genフォルダを消せとか、色々な意見がありましたが、全然とんちんかんな答えなので注意してください。
(以上の記事は私が管理人をやっているfaceBookのページにも記述してあります。)
0 件のコメント:
コメントを投稿