18

最近、R.java ファイルでかなりの問題が発生しています。ここで、何が起こるかを確認するために、バックアップを作成してファイルを削除することにしました。

何も起こらなかったので、空の R.java ファイルを作成し、最善を尽くしました。Eclipse は、ファイルが改ざんされたことを認識したようで、警告を発行します。

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

それだけです。手動でビルドしようとしましたが、結果が得られませんでした。

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

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

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

4

19 に答える 19

15

R.java の生成に失敗したという不可解なエラーが発生して、Android アプリをコンパイルする際に問題が発生しました。

この問題は、以前にビルド中に Android エミュレーターを強制終了したことが原因でした。そうしないでください!手がかりは、いくつかの残った *.out.xml ファイルの出現でした。

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

もう 1 つ: 私は Eclipse を使用しています。ランダムなソース ファイルだけでなく、パッケージ エクスプローラーでプロジェクトが選択されていることを確認する必要がありました。目立ちにくい!

于 2010-08-01T15:10:29.207 に答える
7

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

削除すると再作成されましたが、独自に作成すると、ビルドシステムがそれを置き換えないため、問題が発生します。

単純にもう一度削除して (手動で、または [プロジェクト] -> [クリーン] を選択して)、プログラムを再構築することができます。

于 2010-01-12T11:33:22.560 に答える
4

私はこの問題を数回経験しましたが、ほとんどの場合、「res」ファイルの間違いが原因です。すべての res ファイル、主に XML ですべてが問題ないことを確認し、ビルドできるようにします。

たとえば、この問題の一般的な原因として次の 2 つが考えられます。

  • XML ファイルのスタイルのプロパティ名のスペルが正しくありませんでした。

  • ロケール ファイルの XML の文字列が正しく閉じられませんでした。

于 2011-09-22T07:44:56.920 に答える
3

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

疑問が残ります: エラーに関する警告が表示されないのはなぜですか? または、もしあれば-どこに埋葬されていますか?

于 2010-01-12T13:49:18.683 に答える
2

私は同じ問題を抱えていました。それは、大文字を使用してリソース ファイル (.png 画像) に名前を付けたことでした。(imagebutton001.png の代わりに ImageButton001.png)。

ファイルの名前を変更した後、R.java が戻ってきました。

失礼、フアン

于 2011-10-22T15:14:45.740 に答える
2

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

于 2012-09-28T15:11:40.577 に答える
2

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

于 2010-01-12T11:19:18.233 に答える
1

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

于 2012-07-03T08:02:12.683 に答える
1

不要なリソースが問題を引き起こしていることがわかりました。リソースを削除するとすぐに、R.javaが生成されました。

于 2011-05-04T14:26:13.760 に答える
1

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

于 2010-05-06T06:50:21.963 に答える
1

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

Project -> Properties -> Android 

私のプロジェクトに適したエミュレーターを選択しました.その瞬間に3つの異なるものを選択する必要がありました. ある瞬間にエミュレーターを変更したことに気付きました。エミュレーターを変更してみてください。

幸運を

于 2012-10-24T15:08:59.077 に答える
1

R.java他の人が述べたように、独自のファイルを作成しないでください。Android を初めて使用したときに同じ問題に遭遇し、コンパイル エラーが原因である原因を特定するのに時間がかかりました。

ファイルで何をしようとしていましたR.javaか?

于 2010-01-12T17:53:23.030 に答える
1

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

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

? を変更してみてください。他の何かに移動して、R.javaファイルに何が起こるかを確認してください-私にとってはうまくいきました

于 2010-05-08T14:15:00.443 に答える
1

ponkin が述べたように、R がそれ自体を再生成しない原因となる単一の問題がおそらく 1 つあります。そのため、現在 100 万と 1 つの問題があります。

自分で R クラスを作成しようとしないでください。最後にいじった XML を思い出して、エラーがないかチェックしてください。

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

于 2010-01-12T13:01:14.670 に答える
1

同様の問題がありました。Raw フォルダー内の .wav ファイルの名前を大文字に変更しました。すべて小文字に変更すると、プロジェクトがきれいになり、正常に再構築されましR.javaた。

于 2011-12-12T18:25:19.577 に答える
0

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

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

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

于 2012-03-16T19:21:33.850 に答える
0

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

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

なぜ Eclipse を閉じずに単純なクリーンアップとビルドが機能しなかったのかという疑問が残ります。

于 2013-11-01T20:49:49.673 に答える
0

IntelliJでも同じ問題がありました。問題は、app_name を 2 回定義していたことですstrings.xml。何らかの理由で、IDEA インスペクションはこれを自動的に検出しませんでした。

于 2012-06-10T13:01:48.317 に答える
0

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

于 2012-11-09T09:25:04.427 に答える