体重記録のアプリを Android Market に公開してから 1 年以上が過ぎました。
公開した当初、エラーでアプリが起動しないというコメントがいくつか来ました。自分の環境ではエラーは出ないし、ほとんどのユーザーは問題なく使えていることから、ユーザー個人の環境かと考えていました。

ところがしばらく時間が経ち、エラーのコメントのほとんどはドイツ人らしいことが分かってきました。
(名前がドイツ人っぽかったり、英語があまりネイティブっぽくなかったりしたところからの推測ですが)

そこで自分の Android のロケールをドイツに変えてみて実行したら、確かにエラーが発生するのです。
何度もテストして完璧だと思っていたはずだったのに……。

調べてみると、小数点周りが原因であることが分かりました。
どうやらドイツをはじめヨーロッパのいくつかの国では、小数点にカンマ(,)を使用するらしいのです。
これは知らなかった。小数点はピリオド(.)で表すのが当然だと思っておりました。

さらにヨーロッパでは、桁区切りにピリオド(.)、アポストロフィ(’)、あるいはスペースを使用する場合もあるようです。

例えば Java のページに、「DecimalFormat」クラスを使った場合の説明があります。下図の左側のような形式で小数点と桁区切りを指定した場合、各ロケールでは右側のような数字にフォーマットされるということです。
アメリカ(en-US)は日本と同じ、ドイツ(de_DE)は小数点に「,」、桁区切りに「.」、フランス(fr_FR)では小数点に「,」、桁区切りにスペースです。
101207
http://download.oracle.com/javase/tutorial/i18n/format/decimalFormat.html

もっとも DecimalFormat のようなクラスを使って数値をフォーマットしなければ、こういったエラーは出ないと思います。

私の場合、フォーマット後の数値をテキストとしてデータベースに保存したあと、テキストとして読み込んで小数点をパース(Double.parseDouble() メソッド)していたため、エラーになりました。
まあこの辺は初級プログラマーの経験不足なのでしょう。

そのようなわけで、もし海外にアプリを公開していて、小数点や桁区切りをフォーマットしている場合、ご注意ください。

◆ 参考情報:
海外の言語別の小数点および桁区切りの記号一覧
http://homepage1.nifty.com/tabotabo/ccc/syosu.htm