web-dev-qa-db-ja.com

R.Javaファイルの背後にあるマジック

最近、R.Javaファイルでかなりの問題を抱えています。今、私はバックアップを行い、何が起こるかを確認するためにファイルを削除することにしました。

何も起こらなかったので、空のR.Javaファイルを作成し、最善を尽くしました。これで、Eclipseはファイルが改ざんされたことを理解し、警告を出すことさえあるようです:

R.Java was modified manually! Reverting to generated version!

そして、それだけです。手動でビルドしてみましたが、結果がありませんでした。

だから、私は2つの質問があります:

  1. eclipseにファイルを再生成させるにはどうすればよいですか
  2. ここで何が起きてるの?ファイルはどのように作成されますか。ファイルを生成しているコードはどこにありますか?

何か助けていただければ幸いです。いつものように、問題は締め切りの数日前に発生しました:)

18
LambergaR

私は問題を見つけました-パッチ領域がY軸上でのみ定義された9patchイメージを作成しました(他のサイズ変更を防止しようとしました)。

問題は残ります:なぜエラーに関する警告がないのですか?またはある場合-それはどこに埋葬されていますか?

3
LambergaR

Androidアプリをコンパイルするときに問題が発生しました。R.Javaの生成の失敗に関する不可解なエラーが表示されます。

この問題は、ビルド中に以前にAndroidエミュレーターを殺したことによって引き起こされました。それを行わないでください!残されたいくつかの* .out.xmlファイルの外観が手掛かりでした。

解決策は、プロジェクトを選択し、[プロジェクト]-> [クリーン]をクリックし、次にすべての* .out.xmlファイルを手動で削除するです。そうしてはじめてRun-> Runをクリックしてビルドを成功させることができました。

もう1つ、Eclipseを使用しています。プロジェクトがパッケージエクスプローラーで選択されていること、およびnotがランダムなソースファイルであることを確認する必要がありました。気づきにくい!

15
Stan Mohler Jr.

R.Javaはビルド時に自動生成されます。そのコンテンツは、リソースファイル(レイアウトや設定を含む)に基づいています。

削除すると再作成されますが、独自に作成するとビルドシステムで置き換えられないためトラブルになります。

(手動で、またはProject-> Cleanを選択して)もう一度削除して、プログラムを再構築できます。

7
Tomas

この問題は何度か発生しましたが、ほとんどの場合、「res」ファイルのミスが原因です。すべてのresファイル(主にXML)で問題がないことを確認してから、ビルドできます。

たとえば、この問題の2つの一般的な原因は次のとおりです。

  • XMLファイルのスタイルのプロパティの名前を正しく綴っていませんでした。

  • ロケールファイルのXMLの文字列を適切に閉じませんでした。

4
Antonio

同じ問題があり、リソースファイル(.png画像)に大文字を使用して名前を付けていました。 (imagebutton001.pngの代わりにImageButton001.png)。

ファイルの名前をさらに変更すると、私のR.Javaが戻ってきました。

Rgards、Juan

2
Juan

十分な空きメモリがない場合、ビルドツールは警告なしに失敗します(Eclipseはエラーを表示せず、エラーログに何も報告しません)。開いている他のアプリケーション(エミュレータやブラウザなど)を閉じ、アプリケーションマニフェストファイルにスペースを追加して保存します。

2
Lawrence

申し訳ありませんが、Eclipseで出力を確認してください。 Eclipseがビルドプロセスを完了するのを妨げるいくつかのエラーがあるかもしれません(AndroidManifest.xmlを確認してください、それは正しいですか?)つまり、すべてのリソースファイル(string.xml、レイアウト、...)とインターフェースを確認する必要があります(* .aidl)、EclipseがR.Javaを生成できないいくつかの問題(一貫性のない構文、または何か...)がある可能性があります。

2
ponkin

私はこの問題を抱えていました、再構築するためにR.Java私は今取り組んでいるxmlファイルのコードを切り取り(または、これが機能しない場合は他のファイルを試します)、ファイルを削除してから、同じ名前で別のファイルを作成し、コードを貼り付けます。お役に立てれば。

1
Jamesad

同様の問題があり、Rawフォルダー内の.wavファイルの名前を大文字に変更しました。すべて小文字に変更すると、プロジェクトがクリーンアップされ、R.Java結構です。

1
nwestwood

ポンキンが述べたように-あなたはおそらくRがそれ自身を再生成しない単一の問題を抱えています。

自分でRクラスを作成しようとしないでください。あなたがいじっていた最後のXMLを考えてみて、エラーがないか確認してください

私は同じ問題を抱えていました ここ

1
zorglub76

他の人が述べたように、独自のR.Javaファイルを作成しないでください。私が最初にAndroidを使い始めたときに同じ問題に遭遇しましたが、コンパイルエラーが原因を突き止めるには少し時間がかかりました。

R.Javaファイルを使用して何をしようとしましたか?

1
duanemat

不要なリソースが問題の原因であることがわかりました。リソースを削除するとすぐに、R.Javaが生成されました。

1
FHan

XMLファイルに?が含まれている場合、R.Javaは再生成されず、エラーはXMLファイルに表示されません(しばらくすると表示されることがあります)次のような行があります。

< string name="questionmark"\>?< /string> <br>

変更してみますか?他の何かにして、R.Javaファイル-私のために働いた

1
Jacob

私も同じ問題を抱えていました。私はちょうど行きました:

Project -> Properties -> Android 

自分のプロジェクトに適したエミュレーターを選択したので、その瞬間から3種類から選択できました。いつかエミュレータを変更したことに気づきました。ですから、エミュレータを変更してみてください。

幸運を

1
Oliver

エラーがないことを確認してくださいマニフェストファイル。 /res/values/strings.xmlのリソース文字列app_nameを削除すると、R.Javaの正しい生成方法がわかりません。 HelloSpinnerチュートリアルを実行しているときに、これが問題であることがわかりました。

1
Sven

IntelliJでも同じ問題が発生しました。問題は、strings.xmlでapp_nameが2回定義されていることでした。何らかの理由で、IDEA検査ではこれが自動的に取得されませんでした。

0
Matt Hansen

同様の問題がありました。クリーニングプロジェクトでは問題が解決せず、コードやファイル名の大文字やスペースにエラーはありませんでした。

解決策は、[プロジェクト]-> [クリーン]を選択し、[ビルドをすぐに開始する]オプションをオフにしたときに表示されるポップアップウィンドウに移動することでした。プロジェクトをクリーンアップします。 Eclipseを閉じて再度開き、プロジェクトをビルドします(PROJECT-> BUILD)。

Eclipseを閉じずに単純なクリーンアンドビルドが機能しなかった理由はまだ残っています。

0
Pavi3l

補足として、通常、これらの* .out.xmlファイルは、xmlファイルがエディターでフォーカスされている間にプロジェクトをビルドしようとすることによって生成されます。

0
LairdPleng

私は別のサイトでこれを読み、それが私を助けました:

「それでも問題が解決しない場合は、AndroidManifest.xmlを変更してみてください(スペースを追加して保存するだけです)。これにより、R.Javaが強制的に再構築されます。」

マニフェストファイルにスペースを追加してから、再構築してください。

0
Jonas