プロが教える店舗&オフィスのセキュリティ対策術

あるAndroidプロジェクトをeclipseの『既存のプロジェクトをインポート』を使ってインポートしたのですが、以下のエラーが出て実行、ビルドができません。

検索しても海外のサイトしかヒットせず、英語の読めない私にはさっぱりわかりません。
どなたか教えてくださいお願いします。

[2011-08-14 02:39:48 - NiseSakura] (skipping index file 'C:\Documents and Settings\Takumi\workspace\NiseSakura\res\drawable\Thumbs.db')
[2011-08-14 02:39:48 - NiseSakura] C:\Documents and Settings\Takumi\workspace\NiseSakura\res\values\strings.xml:20: エラー: Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?
[2011-08-14 02:39:48 - NiseSakura] C:\Documents and Settings\Takumi\workspace\NiseSakura\res\values\strings.xml:20: エラー: Unexpected end tag string

A 回答 (1件)

strings.xml というファイルの20行目に、書式が間違えてる箇所があるというエラーですね。



AndroidSDKのバージョンがr08から、strings.xml の書式が変更されましたので、恐らくですけどそれよりも下のバージョンのAndroidSDKで作成されたプロジェクトをr08以降のバージョンを適用したプロジェクトにインポートしようとしてるのでは?

それ自体、特別問題という事はありません。strings.xmlのエラーさえ解消すればビルドできるようになるはずです。

よくあるのは置換文字列に関するエラーです。
例えば20行目が

<string name="message1">%sと%sはお休みです</string>

となっていたとします。この状態で、アプリから置換文字に"土"と"日"を渡してあげると
「土と日はお休みです」
という文字列が生成されます。

昔まではこの書式でよかったのですが、置換文字列が1つのstring中に複数ある場合は、以下のようにしなければならなくなりました。

<string name="message1">%1$sと%2$sはお休みです</string>

それぞれの置換文字列に番号をつけるようになりました。$sの部分は、文字列であれば$s、数値であれば$dとする必要があります。
    • good
    • 0
この回答へのお礼

お礼が遅れてしまい申し訳ありません。
PCの調子が悪くなってしまったのでまだ試していませんが、とても参考になりました。
ありがとうございます。

お礼日時:2011/08/31 19:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!