2011年11月4日金曜日

Android Marketでapkファイルupdateエラー

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 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...