私が参照するすべてのクラスのすべてのインスタンスでR.id.something
、R
は赤で表示され、「シンボル R を解決できません」と表示されます。R.layout.something
また、赤で下線が引かれ、「メソッド setContentView(?) を解決できません」と表示されるたびに表示されます。プロジェクトは常に正常にビルドされます。これをずっと見るのは面倒です。私は、Eclipse からプロジェクトをインポートすることに最も関連しているが、似たようなものについて、ここで他の多くの質問を読みました。私は Android Studio の最新バージョンであると思われるものを使用しています。プロジェクトは Android Studio で作成され、「R を解決できない」という問題は発生しませんでした。原因がわかる方がいましたら教えていただきたいです。
95 に答える
私もこの問題を抱えていました。シンプルな「gradlew clean」と「gradlew build」でうまくいきました。
Build->Clean Projectをクリックすると、 gradle clean が実行されます
私は同様の問題を抱えており、これが私がやったことです:
プロジェクトをクリーンアップし、プロジェクトを Gradle と同期します。
SDK で buildTools のバージョンを確認する
build gradle (module) から minSdkVersion を 8 から 9 に変更します
defaultConfig {
applicationId "PackageName"
minSdkVersion 9
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
しかし、これはすべて役に立ちませんでした。
最後に答えを見つけました(これは私の場合はうまくいきました)
build.gradle(module:app) からの変更
android {
compileSdkVersion 21
buildToolsVersion '21.0.1'
......
....
}
または
ファイルを選択 | プロジェクト構造の変更 ビルド ツールのバージョンを 21.1.1 に変更
Java ファイルまたはディレクトリを他の場所に移動した後にこのエラーが表示された場合は、Android Studio が混乱していることを保証できます。そして、何を推測しますか?これらのアクションを元に戻しても、問題は解決しません。
だからあなたはきれいにしようとしますが、それはうまくいきません。
また、再起動してもうまくいきません。
ただし、ファイルを試してください->キャッシュの無効化/再起動...->無効にして再起動します
Android Studio は、どのファイルが他のどのファイルに依存しているかに関する情報を保持しています。また、ファイルの移動は正しく実装されていないため、ファイルを移動するとエラーが発生します。それだけではありません。これらの依存関係のキャッシュは、ビルドを高速化するために使用されます。
これは、再起動するだけでなく、それらのキャッシュを無効にして正常性を復元 (より正確には再構築) する必要があることを意味します。
アクティビティファイルをデフォルト以外のフォルダーに配置すると思います。を使用してすべてのアクティビティにcom.example.yourproject.R
(これはプロジェクトR
ファイルではなくファイルです)をインポートする必要があります。たとえば、ファイルに次の行を挿入します。Android.R
R
MainActivity
import com.example.yourproject.R;
R.java ファイルには、xml と Java ページ間のリンクが含まれています。「R を解決できません」は、リソース ファイルの一部に問題がある場合にのみ発生します。したがって、最善かつ効果的な方法は、res ファイルで最後に行われた xml または drawable を削除することです。そして、Android のコーディング基準に従って、そこから再び開始します。これが唯一の方法です。効果的で正しい方法。
また、コードを適切に追跡するために Git を使用します。..
R
パッケージをAndroidスタジオにインポートする必要がありました。例:import com.example.<package name>.R
最近この問題が発生し、クリーン/ビルドなどで解決しませんでした。どこかに問題があると思いましたが、それを見つけるためにどこを探すべきかわかりませんでした (マニフェスト、リソース xml ファイルなどにありましたか?)。
何か問題が発生した場合は、コード分析を実行することで原因を突き止めることができます。
上部のメニューから次を選択します。
分析 -> コードを検査し、「デフォルト」プロファイルを使用してプロジェクト全体をスキャンします。
検査結果には「Android」という要素が含まれます。ここでは、リソースとマニフェスト ファイルで問題を引き起こしているすべてのリストを取得します。エラーにより、ビルドから生成された xml ファイルが開き、エラーが赤で表示されます。
<application>
フレーバーベースのマニフェストファイルを使用していて、誤ってフレーバーのタグ内にいくつかの権限をコピーしたため、正確な問題が発生しました。
更新:エラーがまだ残っている間にビルドして完全に正常に実行できるようになったにもかかわらず、修正後も Android Studio にエラーが表示された後、問題が発生しました。(私はカナリアビルドを実行しているので、今のところそれを下に置きます)
私はこれを持っていました
- ドローアブル リソースの大文字。
- Android Studio (または Eclipse) によって追加された Android.R をインポートします。
- xml ファイルのエラー
同じ問題があり、新しいプロジェクトを作成すると発生します。
私がすることは:
- SDK の更新を確認する
- その後、Androidスタジオの更新、
- その後、プロジェクトを再度開きます
- andoridmanifest.xml を開く
- android:label の「_>」の間のスペースを消去して保存します。
それは私にとってはうまくいきます。
私は同じ問題を抱えていましたが、ほとんどの場合、それは次の方法で解決されます
- プロジェクトをgradleファイルと同期する
- ビルドを実行 -> プロジェクトをクリーンアップ
- ファイルの実行 -> キャッシュの無効化
しかし、今回は、これらすべてのことを行った後でもエラーが持続し、ついに犯人を見つけました.
問題は、 id リソース タイプの代わりに通常の文字列値を指定したxml ファイルにありました。android:id
間違い
android:id="username"
修正
android:id="@id/username"
resources
このエラーの主な原因は、xml ファイルに関連するものをめちゃくちゃにすることです。xml レイアウト ファイルではエラーとして表示されない場合があることに注意してください。
ノート
ほとんどの場合、コンパイラはメッセージにエラーの原因を示します。他の解決策を試す前に、まず確認してみてください
`私は同じ問題を抱えていましたが、次の方法で解決しました:
1) Sync Project with gradle files
2) Build -> Clean Project
3) Build -> Rebuild Project
4) File -> Invalidate caches
//imp step
5) Check your xml files properly.`
同じ問題。drawable フォルダーにいくつかの画像を追加して、それらにアクセスしようとしたときに始まりました。また、追加された画像には大文字の拡張子が付いていました。名前を変更してもメッセージは同じで、R にアクセスできなかったため、ビルドがクラッシュしたようです。私がしたことは、.iml ファイルで excludeFolder を探し、それらを削除したことです (以下のように):
<excludeFolder url="file://$MODULE_DIR$/build/apk" />
<excludeFolder url="file://$MODULE_DIR$/build/assets" />
<excludeFolder url="file://$MODULE_DIR$/build/bundles" />
<excludeFolder url="file://$MODULE_DIR$/build/classes" />
<excludeFolder url="file://$MODULE_DIR$/build/dependency-cache" />
<excludeFolder url="file://$MODULE_DIR$/build/incremental" />
<excludeFolder url="file://$MODULE_DIR$/build/libs" />
<excludeFolder url="file://$MODULE_DIR$/build/manifests" />
<excludeFolder url="file://$MODULE_DIR$/build/res" />
<excludeFolder url="file://$MODULE_DIR$/build/symbols" />
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
その後、プロジェクトを再構築すると、魔法のように R が再表示されました。
このエラーには多くの原因があります。
- 同じ名前の画像ファイルを置き換えるために発生することがあります。
- レイアウト .xml からアイテムを削除したとします
<Button/>
が、それはアクティビティまたはフラグメント .java でまだ宣言されています。 - もっとたくさん。
エラーを追跡する最善の方法は、意図的なエラーを発生させてクリーンにするか、同期して再構築することです。
問題が解決しない場合は、何らかの欠陥または実行時エラーが発生したか、リソースの不適切な使用が原因でエラーが発生した可能性があります。コードまたは設計で、gradle を停止させている可能性があります (R )esource ファイルはリソースを適切にインデックス化できないため、それを認めなければなりません。
変更を行う前にプロジェクトが実行された場合は、行った変更をコメントアウトして、プロジェクトを再構築してみてください。
変更はありませんので、確実に機能します。
正確なエラーを追跡するには、変更を小さなモジュールに分割して変更を確認します。
例 - ボタンをクリックしてリストを表示し、アダプターにリスト値を挿入する場合、まずリストを表示できるかどうかを確認してから、アダプターのエラーを確認します。
この表記はうまくいくようです。
android:id="@+id/viewID"
Android Studio のデザイン パネルがうまく機能していないようです。
描画可能なリソースにいくつかの画像を追加しましたが、私の画像の 1 つに「super .jpg」という名前が付けられていました。これが原因であることが判明しました。
イメージの名前を変更し、その後プロジェクトをgradleファイルと同期すると、エラーが修正されました。
私にとっての問題は、いくつかのバグがあると思われるバージョンの Gradle にアップグレードしたことでした。3.4.0-alpha02
私が更新したもので、これが「シンボルRを解決できません」エラーの原因であることがわかりました。3.3.0-alpha10
(つまり)に戻しclasspath 'com.android.tools.build:gradle:3.3.0-alpha10'
、問題を解決しました。
遅かれ早かれアップグレードする必要があるため、これは明らかに長期的な解決策ではありませんが、2018 年 11 月 3 日の時点で3.4.0-alpha02
最新バージョンであり、R 参照をクリックして IDE を飛び回ることができないため、開発が妨げられています。
私はに大混乱を引き起こしていたandroid:textAllCaps = "false"
androidmanifestにR file
ありました。私はそれを削除しましたが、すべて問題ありません。target sdk
設定が不十分だったと思います。
プロジェクトに AndroidManifest.xml があることを確認してください。
マニフェストがまだないプロジェクトをインポートしたため、Android Studio はそれを Android プロジェクトとして認識しませんでした。次に、GIT でプロジェクトを取得し、マニフェストをダウンロードしましたが、まだ機能していません。次に、Android Studioを再起動すると、「フレームワークがAndroidを検出しました」のようなメッセージが表示されました。
そのため、プロジェクトが Android プロジェクトとして構成されていることを確認してください。
私にとってうまくいったのは:
新しいプロジェクトを作成しました。
R が動作していることがわかりました。
- すべての構成を比較しました。
gradle ファイルの違いを見つけました: compile 'com.android.support:appcompat-v7:23.4.0'
同期すると、再び機能しました!
私の場合、Androidスタジオを更新する前にコードは正しく機能していました。アップデート後、 Rファイルが生成されませんでした。カスタムビューで作業していて、属性がありました
<attr name="showText" format="boolean" />
私のスタイル宣言で。この同じ属性は、システムの UI でも使用されていました。
<style name="Base.Widget.AppCompat.CompoundButton.Switch" parent="android:Widget.CompoundButton">
<item name="track">@drawable/abc_switch_track_mtrl_alpha</item>
<item name="android:thumb">@drawable/abc_switch_thumb_material</item>
<item name="switchTextAppearance">@style/TextAppearance.AppCompat.Widget.Switch</item>
<item name="android:background">?attr/selectableItemBackgroundBorderless</item>
<item name="showText">false</item>// this line
</style>
以前のshowTextの名前をshowTextFormatに変更してから、R.java ファイルを再生成する gradle sync に変更しました。
特にレイアウトやメニュー リソース ファイルを誤って破損してしまった場合に、この問題が発生します。私がヒットしたシンボル R を解決できない@+id
シナリオは、メニュー項目で ID を定義する必要がある場所に" " を追加するのを忘れたときです。
破損したメニュー リソース ファイルを使用してプロジェクトをビルドしようとすると、このエラーが発生します。そのRはリソースのコンテナクラスであるため、リソース、 .xmlファイルを解析できない場合、gradleはRをバインドできないようです。
解決策は、リソース ファイルを修正し、プロジェクトをクリーンアップして、再構築するだけです。
Android Studio 0.2.13 を搭載した OS X では、アクティビティの 1 つで com.< プロジェクト >.R インポートで「宣言へのジャンプ」を実行しました。アクティビティ ファイルに戻ると、すべての警告が消えていました。
編集:これが機能する前に、現在のビルド バリアントをビルドする必要があります。
これは、Android Studio で最近削除された xml が原因です。ビルド -> プロジェクトのクリーンアップを選択して、これらの xml からプロジェクトをクリーンアップします。
私はやったしmake project
、それは動作しますが、その前に、マニフェストでパッケージ名を確認し、プロジェクトを再構築してクリーンアップしてください。問題が解決しない場合は、プロジェクトを作成してください
どうやら私の場合、最後に「*」を追加することで問題が解決したようです
import android.R.*;
私の場合、レイアウト XML ファイルのいくつかのエラーを修正する必要がありました。ファイルにエラーが含まれていることを示すアイコンはありませんでした。ただし、それらをクリックすると、いくつかの赤い線が表示されます。それらを修正した後、R
見つかりました。
もう1つ試すこと...
- ビルドフォルダーを削除する
- gradle を同期してプロジェクトを再構築する
ここで他の多くの提案をすでに試しました。
- プロジェクトのクリーニング、
- Androidスタジオを再起動し、
- 私のxmlのエラーを修正し、
- プロジェクトを Gradle ファイルと同期する
- ビルドツールのバージョンを更新し、
しかし、これらのどれも機能しませんでした。
最後に、(プロジェクトをバックアップした後) ビルド フォルダー全体を手動で削除し、Android Studio を再起動しました。その後、アプリの build.gradle ファイルでマイナーな編集 (スペースの追加と削除) を行い、[同期] をクリックしました。(おそらく、メニューから [ツール] > [Android] > [プロジェクトを Gradle ファイルと同期] を実行できたはずです。) その後、機能しました。ビルドフォルダーで何かが壊れていて、新しいビルドからやり直すと修正されました。
誰かが解決策のリストのこれを読んでいるかどうかはわかりませんが、とにかくこの回答を追加します.
何をしても .xml ファイルにエラーがある場合、その問題を修正することはできません。私はそれを提案します
-まず、XML ファイルをチェックしてエラーを探し、
-次に、Androidスタジオがエラーをキャッチしたイベントログを探します。エラーが発生したファイルと場所がわかります。
それが私がRの問題を修正した方法です
Xmlファイルを確認するだけです。エラーがある場合、このエラーを解決することはできません。xmlのエラーを解決してから試してください。
また
ビルドからプロジェクトを消去 -> 消去
「Build->clean project」と「Sync project with gradle」を実行した後。どちらも未解決です。3.3.0 => 3.2.1 (プロジェクトの初期状態に戻す) から gradle バージョンをダウンビルドすると、問題が解決します。
完全なパッケージ名が最初の行にあることを確認してください。LoginActivity.java という名前のファイルと、com.domainname.project というパッケージがあるとします。
LoginActivity.java の最初の行は次のようになります。
package com.domainname.project;
これは、dot.net で「namespace」を指定するのと同じです。また、パッケージが、*.java ファイルが含まれているパッケージと一致していることを確認してください。
最初の解決策
Rebuild your gradle or invalidate/restart your system.
2 番目の解決策
delete .gradle and .idea folder from your android project. So you can solve "R" problem
また、レッドラインエラーが発生しても理由はありません。