Googleコードからコードをダウンロードしましたが、そのプロジェクトをEclipse IDEにインポートすると、R.Javaファイルが生成されません。多くのブログやフォーラムを検索し、クリーニング、再構築、既存のソースからのプロジェクトの作成など、多くのことを試みましたが、まだ直面していますSVNクライアントソフトウェアが原因であると言う人もいましたが、その解決策について言及した人はいませんでした。自分でダウンロードして正確な問題を見つけていただければ、とても感謝しています。
11 に答える
一般に、それを機能させるには:
- プロジェクトをEclipseにインポートします(ファイル - >インポート - >一般 - >ワークスペースへの既存のプロジェクト)
- Eclipse では、gen フォルダーを手動で作成し、それをソース フォルダーとして追加します (プロジェクトを右クリックし、ビルド パス -> ビルド パスの構成 -> フォルダーの追加)。
- プロジェクトをクリーンアップして、R.java を生成するとします。
しかし、そうではありません。なぜですか?
res の xml ファイルに関するコンパイル エラー (またはバグ?) があるため、R は生成されません (Mac でテストしました)
。
<style name="iWindowTitleBackground" parent="android:WindowTitleBackground">
<item name="android:background">@drawable/title_bar</item>
</style>
res/values/themes.xml: 以下をコメントアウトします。
<item name="android:windowTitleBackgroundStyle">@style/iWindowTitleBackground</item>
次に、Project -> Clean を実行すると、R.java が生成されます。
一部のオペレーティング システムでは、parent="android:WindowTitleBackground" を解決できないというバグが報告されています。詳細については、こちらをご覧ください。
生成された R クラスが生成されない場合は常に、XML リソースからの解析の問題が原因で、生成に問題があることを示しています。IDE のエラー コンソールをチェックして、具体的に何が問題なのかを突き止めます。
一般的な問題は次のとおりです。
strings.xml
たとえば、のyou're
代わりに、エスケープされていない文字you\'re
layout_width
レイアウト リソースにまたはlayout_height
タグがありません- 名前空間宣言の欠落
- Java でサポートされていない変数名 (大文字化やスペース、ハイフン、その他のサポートされていない文字の使用など)
- XML のその他の種類の構文エラー
- コンソールで問題を確認します (プロジェクトで R が生成されない理由をコンソールが定義している場所に画像が添付されています)
すべてのリソースにエラーがないことを確認した後も、このエラーが発生しました。クリーニング、再構築、再起動などです。
プロジェクトからSVNファイルを除外することでこれを修正しました。
Eclipseでの検索から.svnディレクトリを除外するにはどうすればよいですか?
質問は検索について言及していますが、解決策はコンパイルで使用されるファイルにも関係します。
再起動し、すべてが正常でした。
Android 4.1 と JDK 1.6 を使用するように設定された新しい Eclipse Juno プロジェクトにインポートしたcode.google.com (こちら)からダウンロードしたウィクショナリ サンプル コードをビルドしようとして同じ問題に遭遇しました。
プロジェクトをビルドした後のコンソールの抜粋を次に示します。
W/ResourceType(6292): 不正な XML ブロック: ヘッダー サイズ 103 または合計サイズ 0 がデータ サイズ 0 よりも大きい C:\Development\WorkJava\android\sampleapps\Wiktionary\com.example.android.wiktionary.LookupActivity\res\values \strings.xml:23: エラー: 非定位置形式で指定された複数の置換。Formatted="false" 属性を追加するつもりでしたか? C:\Development\WorkJava\android\sampleapps\Wiktionary\com.example.android.wiktionary.LookupActivity\res\values\strings.xml:23: エラー: 予期しない終了タグ文字列です
res/values/string.xml の抜粋を次に示します。
<resources>
<string name="app_name">Wiktionary Word of the Day</string>
<string name="app_descrip">A fast Wiktionary browser and Word-of-day widget</string>
<string name="app_credits">"All dictionary content provided by Wiktionary under a GFDL license. http://en.wiktionary.org\n\nIcon derived from Tango Desktop Project under a public domain license. http://tango.freedesktop.org".</string>
<string name="template_user_agent">"%s/%s (Linux; Android)"</string>
<string name="template_wotd_title">"Wiktionary:Word of the day/%s %s"</string>
<string name="template_wotd_archive_title">"Wiktionary:Word_of_the_day/Archive/%s/%s"</string>
解決
以下に示すように、formatted="false" を最後の 3 つの文字列定義 (2 つの %s 置換プレースホルダーを含む) に追加すると、問題が解決しました。プロジェクトを再構築すると、gen フォルダーに R.java が生成されます。
<resources>
<string name="app_name">Wiktionary Word of the Day</string>
<string name="app_descrip">A fast Wiktionary browser and Word-of-day widget</string>
<string name="app_credits">"All dictionary content provided by Wiktionary under a GFDL license. http://en.wiktionary.org\n\nIcon derived from Tango Desktop Project under a public domain license. http://tango.freedesktop.org".</string>
<string name="template_user_agent" formatted="false">"%s/%s (Linux; Android)"</string>
<string name="template_wotd_title" formatted="false">"Wiktionary:Word of the day/%s %s"</string>
<string name="template_wotd_archive_title" formatted="false">"Wiktionary:Word_of_the_day/Archive/%s/%s"</string>
この問題に遭遇したら、gen フォルダーを削除すると、すべての r ファイルで再作成されます
ファイルの上部に、import android.r または r.java と書かれていることがわかります。この行を削除し、プロジェクトをクリーンアップして、再実行する必要があります。
基本的に、Android は R を使用してプロジェクト内のアイテムを参照します。ただし、そのインポートステートメントがある場合、プロジェクトディレクトリの検索をオーバーライドし、androids を使用します
「.xmlファイル」と「画像ファイル」の名前が小文字であることを確認してください。
私は何度もこの問題に直面しました。経験則として、.xml ファイルをチェックします。
.xml ファイルに問題がある場合、R.java は生成されません。
ワークスペースを新しいディレクトリに変更し、誰でも利用できるように権限を設定します
私の場合、res/drawable 内に大文字を含む画像ファイル名を見つけました。イメージ名を変更した後。それは解決され、プロジェクトをビルドできました