web-dev-qa-db-ja.com

Android Studioの "シンボルRを解決できません"

R.id.somethingを参照しているすべてのクラスのすべてのインスタンスで、Rは赤で表示され、「シンボルRを解決できません」と表示されます。また、R.layout.somethingがあるたびに、それに赤の下線が引かれ、「メソッドsetContentView(?)を解決できません」と表示されます。プロジェクトは常にうまくいきます。ずっとこれを見るのはいらいらします。私は、Eclipseからプロジェクトをインポートするのに似ているが最も複雑なものについて、他にもたくさんの質問を読みました。私はAndroid Studioの最新バージョンであると私が信じているものを使用していて、プロジェクトはAndroid Studioで作成され、「Rを解決できません」という問題なく動作しました。誰もが知っているならば、私はこれが何を引き起こすかについて知りたいです。

643
ez4nick

私もこの問題を抱えていました。単純な 'gradlew clean'と 'gradlew build'がトリックを行いました。


Build-> Clean Project をクリックしてください。

693

Android Studioの最新バージョンでは、少なくとも私にとっては、次のように動作します。

「ツール」 - >「Android」 - >「プロジェクトとGradleファイルの同期」

最新のAndroid Studio 3.1.3(2018年7月)では、メインメニューバーに「Sync Project with Gradle Files」が用意されています。

enter image description here

221
Tom C.

私は同じような問題を抱えていて、これが私がしたことです:

プロジェクトをクリーンにし、プロジェクトをGradleと同期します。 

enter image description here

私のSDKのbuildToolsのバージョンを確認してください。enter image description here

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に変更

enter image description here

103
Mina Fawzy

私はgradle 3.3.0を使っていました。それが主な原因でした。私の人生から6.50時間を無駄にしました。 Gradle 3.2.1はエラーを取り除きました。

classpath 'com.Android.tools.build:gradle:3.2.1'

Gradleのバージョンを変更した後、問題は解決しました。詳細履歴は ここ で見つけることができます。

61
  1. あなたのxmlファイルをチェックしてください。
  2. きれいなプロジェクト。

これです。

たとえば、私のstrings.xmlにエントリがありました。

<string name="A">Some text</string>

そしてactivity_main.xmlでは、この文字列エントリを使いました

<TextView
Android:id="@+id/textViewA"
Android:text="@string/A"/>

プロジェクトで作業していた間、私はそれを削除しました

 <string name="A">Some text</string>

そしてその結果activity_main.xmlは無効になりました。結果として:R.は解決できません.

それで、あなたの*.xmlファイルときれいなプロジェクトをチェックしてください。

53
Iurii

Javaファイルまたはディレクトリを 他の場所に移動した後にこのエラーが表示される場合は、Android Studioが混乱していることを保証できます。そして何を思う?これらの操作を元に戻しても問題は解決しません。

だからあなたはきれいにしようとするが、それはうまくいきません。

そして再起動もうまくいきません。

しかし、 ファイル - >キャッシュを無効にする/再起動... - >無効にして再起動 を試してください - /

Android Studioは、どのファイルが他のどのファイルに依存しているかについての情報を保持しています。また、ファイルの移動は正しく実装されていないため、ファイルを移動するとエラーが発生します。それだけではありません。ビルドを高速化するために、これらの依存関係のキャッシュが使用されています。

つまり、再起動する必要があるだけでなく、これらのキャッシュを無効にして(またはより正確には再構築して)健全性を回復する必要があります。

47
Scott Biggs

この問題には多くの原因があるようです。最近、私はNewActivityという名前でテストするアクティビティを追加しました。これはres/menu/new.xmlと呼ばれるファイルを作成し、newは予約語なのでgradleはその名前を好みませんでした。

gradlew clean

または 

"Tools" -> "Android" -> "Sync Project with Gradle Files"

これらは確かに試してみると良いことですが、これらのコマンドを実行する前に解決する必要がある他の問題がいくつかあるかもしれません。

28
chawkinsuf

アクティビティファイルをデフォルト以外のフォルダに配置したとします。 Rを使用してcom.example.yourproject.R(これはプロジェクトのRファイルではありません)をすべてのアクティビティにインポートする必要があります。たとえば、MainActivityファイルに次の行を挿入します。

import com.example.yourproject.R; 

24
ninjahoahong

あなたのコードはただスクランブルされています。答えはかなり簡単です。

Just go to **Build** --> **Clean Project**. 

これでうまくいくはずです。

現在使っている Android Studio 3.0.1

14
lloydyu24

最近SDKツールを更新しましたか。 Android SDKマネージャーを起動して、最新のSDKツールがあることを確認します。これはプラットフォームツールとは別のものです。 SDKマネージャを最初に更新したときにも同じ問題がありました。SDK build toolsパッケージは、SDKマネージャを閉じて再び開くまでインストール/更新用に表示されませんでした。

13
invertigo

ブラザー、R.Javaファイルには、xmlとJavaページ間のリンクが含まれています。 「Rを解決できません」は、リソースファイルに問題がある場合にのみ発生します。そのため、最善かつ効果的な方法は、resファイル内の最後に行われたxmlまたはdrawableを削除することです。その後、Androidのコーディング規約に従って、そこからもう一度始めます。これが唯一の方法です。効果的で正しい方法 

Gitを使ってコードを正しく追跡することもできます。 .. 

幸せなコーディング.. :)

12
Minto

プロジェクトをクリーンアップし、プロジェクトをGradleファイルと同期するだけです。enter image description here

そして問題は解決されるでしょう。

12
Arunendra

私は最近この問題を抱えていて、clean/buildなどで解決しませんでした。私はどこかに問題があると思いましたが、それを見つけるためにどこを探すべきか確信が持てませんでした(それはマニフェスト、リソースXMLファイルなどにありましたか?).

何か問題があるときは、コード分析を実行して、それが何であるかを調べることができます。

上部のメニューから次のように選択します。

分析 - >コードの検査、 'デフォルト'プロファイルを使ってプロジェクト全体のスキャンを行います。

検査結果には「Android」という要素が含まれます。ここでは、リソースとマニフェストファイルで問題を引き起こしているものすべてのリストを取得します。エラーはあなたのビルドから生成されたxmlファイルを開くでしょう。

私の正確な問題は、フレーバーベースのマニフェストファイルを使用していて、偶然にフレーバーの<application>タグ内に権限をコピーしたために発生しました。

Inspection

アップデート: 修正後もAndroid Studioでエラーが表示された後で問題が発生しましたが、エラーが解決しないうちにビルドおよび実行できるようになりました。 (私はカナリア造りの建物を運営しているので、今のところそれをそれに入れています)

11
Matthew Cawley

私はこれを持っています

  1. 私の描画可能なリソースの中の大文字。
  2. Android Studio(またはEclipse)によって追加されたAndroid.Rのインポート 
  3. Xmlファイルのエラー
9
Ryan Heitner

Androidのトップメニューリストに移動するだけです。 ビルド メニューをクリックして、ビルドの下にある プロジェクトの再ビルドをクリック

enter image description here

9
Gundu Bandgar

自分のアプリのドメインフォルダを手動で名前変更したときに、この問題に直面しました。この問題を解決するために、私はしなければなりませんでした 

  1. <manifest>AndroidManifest.xmlの適切なpackageフォルダー構造を設定します。
  2. Android:name<activity>AndroidManifest.xmlの新しいパッケージの場所を設定します。
  3. によってキャッシュをクリア

ファイルメニュー - >キャッシュの無効化/再起動...

Android Studioが再起動して新しいインデックスが作成されると、問題は解決します。

9
Sridhar

私は自分のRパッケージをAndroidスタジオにインポートしなければなりませんでした。例:import com.example.<package name>.R

8
Pervy Sage

Do> Build> Clean Project

重要:メッセージペインでプロジェクトをクリーンアップした後にエラーがないことを確認してください(Alt + 0)。感嘆符付きの赤い丸が見つかった場合は、コード内のそれらのエラーを削除する必要があります。 

主にこれらのエラーは@ string /または@ array /に関連しています。プロジェクトをもう一度クリーンアップして完了です。 

7
Hassan Naqvi

私はこれを自分で直すのに苦労しました。

  • Layout.xmlファイルにエラーがないことを確認してください。
  • ビルド>クリーンプロジェクトに移動します

それは私のために働いた、それもあなたのために働くことを願っています。

7

私は同じ問題を抱えていた、そしてそれは私が新しいプロジェクトを作成するときに起こる。 

私がしているのは:

  • sDKのアップデートを確認する 
  • その後、Androidスタジオのアップデート、 
  • その後、プロジェクトを開きます 
  • andoridmanifest.xmlを開く 
  • android:ラベルの「_>」の間のスペースを消去して保存します。 

それは私のために働きます。 

7
Elsanty

ビルド>クリーンプロジェクト

これは私のために働きました。同じ問題が数回あった、そしてこれはそれを正しく設定するように思われる。あなたが何かを変更したり変数Rを呼び出したりしていない限り、この問題は私には起こり得るところで、通常どこにも起こらないので、私はそのちょうどAndroidのスタジオがおかしくなっていると思います。はは

あなたのプロジェクトで良いものを、そして頑張ってください。

7
S.Pedro

私はこの問題について特別な場合があります。 

私のプロジェクトでは、あらゆることはうまくいって、うまくコンパイルおよびビルドできますが、私のAndroid Studio IDE(およびIntelligent IDEAも試しましたが、それらは同じ状況にあります)では、R.Javaファイルをうまく解決できず、常に赤い線をドロップします。 

ちょうどこのような:  enter image description here

これは私をほとんど頭がおかしくなりました、私がプログラムしているとき、私は読み色を負担することができません。 

ついに私はこの難しい問題が私のR.Javaのファイルサイズが原因であることに気付きました。私のプロジェクトは非常に巨大なものです、それは多くの多言語とマルチスクリーンサイズをサポートします。私のR.Javaのファイルサイズは約 2.5M です。

Android Studioのファイルの最大サイズは、デフォルト設定で2.5Mです。そのため、この制限を超えるファイルはうまく解決できません。また、「AndroidStudio-root/bin/idea.properties」でデフォルト設定を変更できます。

この行を変更してください。

idea.max.intellisense.filesize=2500

に:

idea.max.intellisense.filesize=5000

それからアンドロイドスタジオを再起動してください、赤い色は消えました、私は再び幸せにプログラムすることができます。

7
Fido Zhang

これは非常に古い質問ですが、それでも多くのことが起こり、ここでは真に包括的な答えはありません。 

私が認めようと思っているよりも何度もこの問題を抱えています。それは、ほとんどすべてがあなたのプロジェクト構造に関係していて、期待されているものと一致していない多種多様な問題によって引き起こされる可能性があります。これが私が抱えていたすべての問題のリストです:

特に古いバージョンのAndroid Studioでは、EclipseからAndroid Studioへのインポートは必ずしもスムーズに機能しません。正しいディレクトリツリーを使用していることを確認してください。適度に成熟したアプリでは、このようになります。

AppName/        // AppName is your app's name, obviously
    .gradle/    // This is a compiler created directory. You should normally leave it alone
    .idea/      // Ditto
    build/      // This too
    gradle/     // And this
    app/
        build/
        libs/
        src/
            androidTest/   // Tests based on the Android instrumentation runner should go here
            main/
                Java/
                    fully/           // Typically com
                        qualified/   // the domain name. Longer package 
                                     // names may have deeper folder trees
                            AppName/ // All your Java files go here
                res/
                    drawable-*/      // One of these for each resolution you support
                    layout/          // All of your general layouts
                    menu/            // All of your menu layouts
                    values/          // All of your resource xml files
                    xml/             // PreferenceScreen layouts go here
                AndroidManifest.xml
            debug/         
            test/          // Pure jUnit tests should go here
        .gitignore
        app.iml
        build.gradle   // This is the gradle file you should be making most changes to
        proguard-rules.pro
    .gitignore
    build.gradle       // This gradle file should mostly be left alone
    gradle.properties
    gradlew
    local.properties
    AppName.iml
    settings.gradle

IDEではこのように見えないかもしれません。ファイルツリーの上にはさまざまな方法でファイルを表示するためのドロップダウンがあり、私のシステムではデフォルトでAndroidと呼ばれるものになり、ファイルがさまざまな種類に分類されます。 Android Studioでは、別のフォルダのみを含むフォルダが1行にまとめられるため、Projectと呼ばれるものからこの種の問題を解決する方が簡単です。また、OSのファイルシステムから直接簡単に解決できます。

特にアプリの名前を変更した場合は、必ずソースツリーmain/Java/com/domain/AppNameが更新されていることを確認する必要があります。また、AndroidManifest.xmlのpackageタグが正しいことを確認してください。

GradleファイルまたはAndroidManifest.xmlにエラーがあると、Android Studioがリソースファイルを正しく構築できなくなります。 Gradleファイルは、特に1.0より前のバージョンから、時々Android Studioをアップグレードすることによって壊れることがあります。時々これはGradleプラグインの古いバージョンをサポートするのをやめるので、あなたはあなたのバージョン番号を更新する必要があります。現在のバージョンが何であるかを見つけるのが難しい場合があります。今日の7/17/15現在、私のアプリはcom.Android.tools.build:gradle:1.2.3でうまくコンパイルされています。これは一番外側のgradleファイルのdependenciesブロックにあります。 

あなたのAndroidManifestが存在しないドロウアブルまたは文字列リソースまたはアクティビティを参照するならば、それは壊れて、このエラーを引き起こします。存在しないドロウアブルまたは文字列リソースを参照しているものがあると、このエラーが発生することがあります。

リソースに破損したファイル、または無効なxmlファイルがある場合は、このエラーが発生します。

私の経験では、時々Android Studioは単に理由もなくしゃっくりします、そしてあなたはそれを再起動する必要がありますおよび/またはあなたのPC。理由はわかりませんが、うまくいく場合もあります。

同じ名前の2つのxmlリソースが、互いにオーバーライドしないディレクトリにある場合、この問題が発生する可能性があります。たとえば、drawable-mhdpiとdrawable-xhdpiは、ターゲットデバイスによっては互いにオーバーライドされるため、同じ名前を使用できますが、レイアウトとメニューで同じ名前を使用すると問題が発生します。いずれかのファイルの名前を変更するか削除してください。

一部のリソースだけがこの問題を抱えている場合、それらのリソースは間違ったディレクトリにある可能性が最も高いです。

ある場合には、私はAndroid Studioを完全に再インストールしなければなりませんでした。何が問題なのかわかりませんが、うまくいきました。

あるケースでは、プロジェクト全体を別のディレクトリに移動し、それを新しいプロジェクトとして再度インポートしました。何が問題なのかわかりませんが、うまくいきました。

名前に予約語を含むXMLファイルは、この問題を引き起こす可能性があります。名前を変更するか削除してください。

Gradleファイルが、インストールしていないビルドツールのバージョンを参照することになる可能性があるいくつかの方法があります。 Gradleを変更するか、適切なビルドツールをダウンロードしてこれを修正してください。

最後に、問題点を修正したら、Gradleプロジェクトをクリーンアップする必要があります。これを行うには、上部の「ビルド」メニューに移動して「プロジェクトをクリーン」を選択します。

7
TBridges42

この表記はうまくいくようです。 

Android:id="@+id/viewID"

Android Studioのデザインパネルがうまく機能していないようです。

5
Tevin J

同じ問題です。描画可能なフォルダに画像をいくつか追加してアクセスしようとしたときに開始しました。追加された画像も大文字の拡張子を持っていました。私がそれらを改名したとしても、メッセージは同じで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は魔法のように再登場しました。

5
user1137313

私は同じ問題を抱えていて、ほとんどの場合それはによって解決されます 

  • プロジェクトの同期 gradleファイル付き
  • ビルド - >クリーンプロジェクト
  • ファイル - >キャッシュを無効にする

しかし、今回はこれらのことをすべて行った後でもエラーが持続し、ついに私は犯人を発見しました。

問題は xmlファイル にありました。そこでは、私は idリソースタイプ の代わりにAndroid:idに通常の文字列値を与えました。

_間違い_

Android:id="username"

_補正_

Android:id="@id/username"

Xmlファイル内のresourcesに関連するものを台無しにすることが、このエラーの主な理由です。xmlレイアウトファイルではエラーとして表示されない場合があることに注意してください。

注意 

ほとんどの場合、コンパイラはメッセージにエラーの原因を表示します。他の解決策を試す前に、まずそれをチェックしてください。

5
Siva Prakash

`私は同じ問題を抱えていて、それによって解決されました:

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.`
5

最新のSDKバージョンを変更する

1.ファイルをクリックし、プロジェクト構造をクリックします2.次に「アプリ」を選択し、[OK]をクリックします。 enter image description here

4
Than Htut

これは私にとって大きな頭痛の種でした。私の場合、エラーはAndroid Studioで「Google Play Services」を設定した後に表示されます(+ build.gradle configのインストール)。これは順番にminsdk> 7を必要としますが、エラーはそれについては非常に不明瞭です(実際にこれに関する苦情は「情報」として現れるだけです)。とにかく、マニフェストファイルとbuild.gradleファイルの両方でminsdkを8に変更してプロジェクトを再構築すると、エラーがなくなりました。

一般的に言えば、これに関する一般的なアドバイスです。マニフェストファイルやその他の設定ファイルに問題がある可能性があります。それが何であるかについてのどんなヒントについても "info"と題されたメッセージさえ、エラーレポートを本当に一生懸命見てみてください...

4
ayal gelles

男、私はここで暗闇の中でたくさんのショットがあると思います。場合によっては、プロジェクトのクリーンアップと同期は、問題を解決した後でしか役に立ちません。

Step1: パッケージが次のように指定されている各ファイルの先頭を見てpakage="YourURL.YourProject";、正しいパッケージ(Your Own Project)が指定されていることを確認します。 これはJava filesおよびAndroidManifest.xmlにあります。そのパッケージにはリソースが含まれているため、Javaファイルが正しいパッケージを参照することが重要です( " R ")あなたが指している一致しないエラーシンボルRを解決できませんが発生します。

Step2: クリーン、同期、何でも。完了

では、なぜこれがランダムに発生するのでしょうか。

あなたがコピーして貼り付けコードを書いているなら、上で説明したように "package ="に細心の注意を払うべきです。さらに重要なことは、コードを貼り付けると、すぐに一種のデバッガ(言い訳の悪い技術用語)が表示され、「推定エラー」が表示されます。 したがって、貼り付けた後にすぐに表記を修正しても、デバッガはすでに更新されています。これが"Clean、Sync、Whatever"が機能する理由ですときには

4
Angoranator777

このエラーには多くの原因があります。

  1. 同じ名前の画像ファイルを置き換えることで発生することがあります。
  2. レイアウトから項目を削除したとします。xml<Button/>と言いますが、それはまだ任意のActivityまたはFragment .Javaで宣言されています。
  3. もっとたくさん。

エラーを追跡する最良の方法は、それをきれいに再構築するか、意図的なエラーを行って同期することです。

それでも問題が解決しない場合は、欠陥や実行時エラーが発生したか、コード内のJavaまたはxmlファイルの両方でリソースが不適切に使用されたためにエラーが発生する)esource fileはあなたのリソースを適切にインデックスすることができず、あなたはそれを認めなければなりません。

変更を加える前にプロジェクトが実行された場合は、行った変更をコメントアウトしてプロジェクトの再構築を試みます。

変更はないので、それはきっとうまくいくでしょう。

正確なエラーを追跡するには、変更を小さなモジュールに分割して変更を確認してください。

たとえば、ボタンをクリックしてリストを表示し、アダプタにリスト値を挿入する場合は、最初に表示できるかどうかを確認してから、アダプタのエラーを確認します。

4
Sourav Roy

クリーニング、再構築、そして「キャッシュの削除」は私には役に立ちません。

3

私にとっては、いくつかのバグがあるように思われるGradleのバージョンにアップグレードしたことが問題でした。 3.4.0-alpha02は私が更新したもので、これが "Cannot resolve symbol R"エラーの原因であることがわかりました。私は3.3.0-alpha10(つまりclasspath 'com.Android.tools.build:gradle:3.3.0-alpha10')に戻り、問題を解決しました。 

私は遅かれ​​早かれアップグレードする必要があるので、これは明らかに長期的な解決策ではありませんが、2018年11月3日の時点で3.4.0-alpha02が最新バージョンであり、IDEを回避しないで開発を妨げますRの参照をクリックして_。

3
mp501

私がプロジェクトのライブラリの多くを更新したとき、これはかなり最近私に起こりました。 Rは見つかりませんでしたが、プロジェクトを構築して実行することはできました。クラッシュしませんでした。 IDEはあちこちに赤く表示されているだけです。

やってみました

  • 破損した/不適切なXMLや画像をチェックしてください、何も見つかりません
  • 無効なリソースファイル名(大文字など)を確認し、見つからない
  • 多分 これはリソースの競合であり、解決されていないため、一部のライブラリをダウングレードします。
  • compileSdkVersiontargetSdkVersionを下げました。過去には、これが原因でリソースの問題が発生したためです。しかし、このプロジェクトではそうではありませんでした。
  • きれい、助けにはならなかった
  • プロジェクトを再構築、助けにはならなかった
  • キャッシュを無効にする/複数回再起動する
  • idea.max.intellisense.filesizeを非常に高い値に調整しましたが、役に立ちませんでした
  • Lintを実行しましたが、エラーは見つかりませんでした

結局、私のGradleビルドツール(3.3.1から3.2.1へ)をダウングレードすることで問題が解決したことがわかりました。それが私がしなければならなかった唯一の変更でした。残りは、更新しました。現在、私のすべてのライブラリは問題なく更新されています。

buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        //classpath 'com.Android.tools.build:gradle:3.3.1'
        classpath 'com.Android.tools.build:gradle:3.2.1'
        classpath 'com.google.gms:google-services:4.2.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
3
Gene

ルートパッケージからRシンボルをインポートするだけです。

import rootpackage.R;

再構築、同期、その他のことはありません.

3
Rzv Razvan

毎回私に効くのは:

- >あなたのプロジェクトのbuild.gradle (Module: app)ファイルに行きます - >ちょっとした変更をします(例えば:どこかに<space>を入れて元に戻します) - >それからAndroid studioはあなたのgradleファイルをsyncするように頼みますファイルの隅 - > select "sync now"

同期が完了すると、ほとんどの場合問題が解決します。

3
Danger

私の場合は、Android Studioを3.1から3.3にアップデートすることで解決しました

あなたのAndroid Studioをアップデートするには:ファイル - >設定 - >システム設定 - >アップデートと、それから今チェックをクリックしてください。

enter image description here

2
Tanvir Hasan

私の場合は、Android Studioバージョン0.8.9と同じエラー(シンボルRを解決できません)をした後に、File-> Project structureに移動し、JDKの場所を手動でインストールしたOracle JDKに変更しました。だから私の場合は/ usr/lib/jvm/Java-7-Oracleではなくlinuxで、これがプリセットされていた。 /home/phvz/App/jdk1.8.0_20に変更して設定を保存したところ、Rシンボルの問題はすぐに修正されました

2
Paris G.

私にとってうまくいったのは、

  1. 新しいプロジェクトを作成しました。

  2. Rが目覚めていることがわかりました!

  3. すべての構成を比較しました。
  4. Gradleファイルにその違いが見つかりました。

  5. 同期して、それはまたうまくいった!

2
M. Sherbeeny

私が誤って layout または menuリソースファイル を壊したときに、私は特にこの問題を抱えています。私が を打ったというシナリオは、シンボルR を解決できないのですが、 "@+id"を追加するのを忘れたときに、メニュー項目でIDを定義します。

破損したメニューリソースファイルを使用してプロジェクトをビルドしようとすると、このエラーが発生します。 _ r _ はリソースのコンテナクラスなので、 gradle はバインドできません _ r _ はリソースを解析できないとき、 .xml files。

解決策は、単にリソースファイルを修正し、プロジェクトをクリーンアップしてから再構築することです。

2

私の場合、アプリケーションドメイン名の後に「.R」を付けてインポートすると問題が解決しました。例:

import com.example.myapp.R;
2
qjk

プロジェクトにAndroidManifest.xmlがあることを確認してください。 

マニフェストをまだ持っていないプロジェクトをインポートしたため、Android StudioがそれをAndroidプロジェクトとして認識しないことがありました。それから私はGITでプロジェクトを引っ張りました、そしてそれはマニフェストをダウンロードしました、しかしまだ働いていません。 それから私はAndroid Studioを再起動し、それは "FrameworkがAndroidを検出しました"のような何かを言った。

だからあなたのプロジェクトはAndroidプロジェクトとして設定されていることを確認してください。

2
xhenryx14

大規模プロジェクトでは、自動生成されたR.Javaが2.55MB(Intellijのデフォルトの制限)を超えると、ファイルは生成されますが解決されません。それを解決するには、単にその限界を増やします。

  1. android Studioヘルプ - >カスタムプロパティの編集...

enter image description here

  1. これを受け入れて追加してください: idea.max.intellisense.filesize=3000 (3000またはRファイル・サイズより大きい任意の値)

enter image description here

  1. 最後に、Android Studioを再起動してください。
2
riu999

まず最初にそれを解決する場合、最初のチェックは、任意のxmlレイアウトにエラーがあるかどうかです。

そうでなければ、プロジェクトからjunit依存関係を削除し、プロジェクトを再構築します。 enter image description here

2

Android Studio 0.2.13を使用したOS Xでは、私の活動の1つでcom。<project> .Rインポートで "宣言へジャンプ"をしました。活動ファイルに戻ると、すべての警告は消えていました。

編集:これがうまくいく前に、あなたは現在のビルドバリアントをビルドする必要があります。

2
Mike Hays

描画可能なリソースにいくつかの画像を追加しましたが、そのうちの1つの画像に " super 。jpg"という名前が付けられました。 

Imageとafterの名前を変更してプロジェクトとgradleファイルを同期させるとエラーが修正されました。 

2

私の場合は、Android Studioをアップデートする前にコードが正しく機能していました。更新後 _ 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ファイルを再生成した同期同期を使用します。

2

これらのどれもUbuntu 12.04で私のために働きませんでした。私は次のことをしなければなりませんでした:

Sudo apt-get install lib32stdc++6
Sudo apt-get install lib32z1

その後、私はこのスレッドで他のいくつかのアドバイスに従って、Build - > Clean Projectを実行しました。

2
LOLapalooza

私の場合:res/someLayout.xmlファイルにエラーがあるので、それを解決します。 そして、プロジェクトをクリアしてください。エラーがなくなりました。

2
Vrajesh

私は androidmanifest Android:textAllCaps = "false"があり、R fileに大混乱を引き起こしています。削除しましたが、すべて問題ありません。 target sdkは十分に高く設定されていなかったと思います。

2
timmyt123

Analyticsを実装するためにgoogle-services.jsonファイルをインポートしたときに、この問題に直面しました。 xmlフォルダにはglobal_tracker.xmlファイルが既にあります。ビルド中に、google-services.jsonファイルの内容をマージしている間に、エラーが発生し始めました。 

goolgle-services.jsonファイルを削除した後、エラーが解決しました。  

2
Lalit Rane

上記の答えのどれも私を助けませんでした。私はついにその問題が "build"フォルダがAndroid Studioにないことであることに気づきました。プロジェクトの "iml"ファイルに "build/*"以外の行がいくつか見つかりました。それらを削除した後、ビルドファイルが現れエラーは消えました。

2
thefreeman

非基本機能のインスタントアプリケーションアクティビティでは、R.id.fromFeatureOneおよびR.is.fromFeatureTwoを呼び出すことができます。そのため、 異なるリソースからの項目は、単一のリソースOrigin として参照されます。 

どちらも許容できるものとして強調表示され、ソースにジャンプすることもできます。しかし、buildはエラーになります: " シンボルR.id を見つけることができません"何もハイライトされていないので、これは理由を見つけるのがかなり難しいです。

解決策はcom.example.feature.one.R.is.fromFeatureOnecom.example.feature.two.R.is.fromFeatureTwoを呼び出すことです。

またグーグルでバグを出した: https://issuetracker.google.com/u/0/issues/77537714

1
Zon

どうやら私の場合、問題は最後に "*" を追加することで解決した 

import Android.R.*;
1
Dan

Gradleプラグインをバージョン1.3.1からにアップグレードした後にこのエラーが発生しました

classpath group: 'com.Android.tools.build', name: 'gradle', version: '2.2.1'

すべての参照を次のように変更せざるを得ませんでした

import [applicationId].R;

import [package].R;

そして、私のライブラリプロジェクトでは、appcontext.getPackageName();が正しく動作しなくなりました。リフレクションを介して正しいアプリリソースを取得するために使用しましたが、gradleプラグインをアップグレードした後、パッケージの代わりにフレーバー固有のapplicationIdを返し始めました...詳細についてはこちらをご覧ください here

1
Gabor

私は上記のすべてに従ったが、うまくいきませんでした。私の場合は、Android-Lプレビュー用にすべてのJava関数を赤で表示したときにJDKを設定する必要がありました。 

Macの場合

  1. コード内の赤(または下線付き)の部分(アクティビティ、文字列)を1回クリックします。
  2. 左側に表示される赤い電球の点をクリックしてください。
  3. 「JDKの設定」を選択してください。
  4. Annotations.jarとAndroid.jarが現在使用しているSDKバージョン(私の場合はSDK 20 Android-L)に含まれているかどうかを確認します。あなたはまた "res"フォルダを持っているべきですが、私はどういうわけかまだ設定でそれを持っていました。
  5. そうでない場合は、SDKを選択して " - "を押します。
  6. 次に「+」を押して、コンピューター上のSDKフォルダーを見つけます(Mac:Applications> Android Studio.app> sdk)。
  7. 必要なSDKのバージョンを選択します(私の場合は20 Android-L)。
  8. 追加を押します。
  9. ビルドと同期.

それからすべては私のために正常に戻った。

1
Tomap

私はmake projectをしました、そしてそれは働きますしかしその前にあなたのマニフェストのパッケージ名をチェックして、あなたのプロジェクトを再構築してきれいにすることを試みなさい。問題が解決しない場合は、プロジェクトを作成してください。

1
Fakher

もう1つ試すこと...

  1. ビルドフォルダを削除します。
  2. Gradleを同期してプロジェクトを再構築します

私はすでにここで他の提案の多くを試してみました。 

  • プロジェクトの清掃
  • android Studioを再起動します。
  • 私のxmlのエラーを修正する
  • プロジェクトとGradleファイルの同期
  • ビルドツールのバージョンを更新する

しかし、どれもうまくいきませんでした。 

プロジェクトをバックアップした後で、ついにビルドフォルダー全体を手動で削除し、Android Studioを再起動しました。その後、私は自分のアプリのbuild.gradleファイルをマイナー編集(スペースの追加と削除)してからsyncをクリックしました。 (メニューから[ツール]> [Android]> [プロジェクトとGradleファイルとの同期]を実行しただけかもしれません。)その後、うまくいきました。ビルドフォルダ内で何かが壊れてしまい、新しいビルドからやり直すと修正されました。

誰かがこれを解決策のリストの下に読んでいるかどうかはわかりませんが、とにかくこの答えを追加します。

1
Suragch

上記の答えのどれも私の問題を解決しませんでした。だから私は誰かが同様の問題に遭遇した場合に備えて私の解決策を追加しました。私のbuild.gradle依存関係では、

compile 'com.Android.support:appcompat-v7:22+'

私のcompilesdkのバージョンは compileSdkVersion 21だったので、Android Studioは不満でした。私は単にcompilesdkversionを23に更新して同期しました。

また、依存関係を次のように更新しました。

compile 'com.Android.support:appcompat-v7:23.1.1'

[ツール] - > [Android] - > [SDK Manager] - > [SDK Tools]タブ - > [Android Support Library] - > [version]でサポートライブラリを一致させることができます。ハッピーコーディング:)

1
The_Martian

[ビルド] - > [プロジェクトのクリーンアップ]または[]またはファイル - >キャッシュの無効化/再起動... - >無効化と再起動

1
Hitesh Kanjani

注:これはあなたのプロジェクトが非常に大きい場合にのみ役に立つかもしれません

TL; DR - 生成されたRファイルは2.56 MBを超え、Android Studioはそれを索引付けしていませんでした。そのための解決策は次のとおりです。 

ファイルサイズが設定された制限(2560000)を超えている、コードインサイト機能が利用できない

同様の問題に直面していました。しかし、ここでの答えはどれもトリックをしていないようでした。

Rファイルが2.56 MBを超えていました。生成されたRファイルを開くと、「コードインサイトは利用できない可能性があります」というメッセージが表示されました。

より大きなファイルを可能にするためにidea.properties内のデフォルトを変更することがトリックでした。

モバイルでの書式設定のお詫び.

1
user3501236

これは最近削除されたxmlsが原因です。 Android Studioの場合 build - > clean projectを選択して、これらのxmlからプロジェクトを削除します 

1
Tony Tawk

私もこの問題を抱えており、このようにして解決しました。

Androidスタジオからクリーンアップしないようにしてください

1
Susampath

XMLファイルをMENUフォルダではなくLAYOUTフォルダに入れました。

これはEclipseからAndroid Studioに移行した結果です。

私にとっての解決策は簡単でした...私のXMLファイルをMENUフォルダに移動して再コンパイルしてください。

1
user3063582

新しいAndroidのスタジオで2.2。 TargetSDK = 15未満の場合、この問題も発生する可能性があります。 gradle.buildでこれを変更してから、前の回答に従って手順に従ってください。 gradleファイルを同期して再構築します。キャッシュを無効にしてスタジオを再起動することもできます。

1
Erick Boshoff

私の場合は、レイアウトXMLファイルのエラーをいくつか修正する必要がありました。ファイルにエラーがあることを示すアイコンはありませんでした。しかし、それらをクリックすると、いくつかの赤い線が見えます。それらを修正した後、Rが見つかりました。

1
Michiel Pater

何をしても.xmlファイルにエラーがある場合は、その問題を解決することはできません。私はそれをお勧めします

まず、XMLファイルをチェックしてエラーを探します。 

- 2番目にAndroid Studioがエラーを検出したイベントログを検索し、それがどのファイルとどこにエラーがあるのか​​を表示します。

それで私は私のRの問題を修正したのです

1
Mjachowdhury

私は現在同様の問題を抱えていました。問題は私のプロジェクトでもっとモジュールがあるということでした。例えば。 appモジュールとlibraryモジュール。クラスとR.stringリソースは両方ともappモジュールからのものですが、私はどういうわけかそこにimport com.package.library.Rを入れました。どういうわけかAndroid Studioはこれをエラーとして認識せず、Gradle/Syncは問題なく私のプロジェクトをビルドしました。しかし、私が単体テストを実行しようとしたときにGradleのビルドが説明されたエラーで失敗しました。

package com.package.app

import com.package.library.R;
//...

class SomeClass {
  //...
  public void someMethod() {
     Toast.make(context, R.string.message, TOAST_LONG).show();
  }
}

R.string.messsageリソースが実際にはcom.packagename.appモジュール内にあり、com.packagename.libraryモジュール内にない場合。 import ...を削除すると私の問題は解決しました。

1
Jan Kubovy

完全なパッケージ名が最初の行にあるようにしてください。 LoginActivity.Javaという名前のファイルとcom.domainname.projectという名前のパッケージがあるとします。

LoginActivity.Javaの最初の行は次のようになります。

package com.domainname.project;

これはdot.netで "namespace"を指定するのと同じです。また、パッケージが* .Javaファイルが含まれているパッケージと一致していることを確認してください。

0
Simba

この問題は、「res」または「drawable」フォルダ内のファイルの命名が原因で発生します。リソースファイルの命名に大文字を使用することはできません。そのため、そのようなファイルがあるかどうかを確認し、小文字で名前を変更してください。

そして、これも試してみることができます。 ファイル > キャッシュを無効にする/ restart  

これらのオプションは私のために働きました。

0
galibhkhan

あなたは自分のlayout filesの一つdeleteを使うことができます(どちらを問わない)、その後build projectをする必要があります。プロジェクトがビルドされ、その後レイアウトファイルを返却する必要があります。 CTRL + Z。私の場合、layout fileを削除する前に自分のプロジェクトをビルドしようとしても、役に立ちませんでした。しかし、これでいいのです。

0
Valentin

「シンボルrを解決できません」というエラーを修正するには。これらの解決策を試してください。

  1. ビルド - >プロジェクトのクリーン。

  2. ビルド - >プロジェクトのビルド.

  3. ビルド - >プロジェクト作成.
  4. ツールバーの左から3番目のアイコン - >プロジェクトをGradleファイルと同期します。
  5. ファイル - >キャッシュを無効にして再起動します。
  6. アプリケーションレベルのグラドルファイルで互換性のあるグラドルバージョンを使用していることを確認してください。

例えば: "classpath 'com.Android.tools.build:gradle:X.X.X'"。

私はこれらの解決策があなたを助けることができると思います。

読んでくれてありがとう。

0
Aman Goyal

以下の画像Gotoファイル->プロジェクト設定->すべての設定を画像のように設定して同期すると、プロジェクトのすべての最新設定が反映されます。 This Image contain project settings. プロジェクトが正常にインポートされた場合、これを行う必要があります。すべての更新設定とgradleをインポートするためです。

0
Tejas Shukal

あなただけのあなたのXmlファイルをチェックする必要があります。 エラーがある場合は、このエラーを解決することはできません。

OR

プロジェクトをビルドからクリーンアップ - >クリーン

0
Hardik Lakhani

最初の解決策

Rebuild your gradle or invalidate/restart your system.

第二の解決策

delete .gradle and .idea folder from your Android project. So you can solve "R" problem

そしてまた、あなたが得る何らかの理由もなく発生する朱書きエラーを削除します。

0
Jatin Bansal

私はこの問題が多くのことを引き起こすかもしれないのを見ます。私の場合は、アクティビティ* .xmlファイルの1つにtextViewがありました。私はそのテキストをエディタの中に(コードで後で変更するために)このように入れます:"NAME: <here will be name>"。どうやら、 "<"と ">"の文字が私のプロジェクトのどこからでもRのインポートを中断したようです。私はそれを変えました、そしてそれは働き始めました。 * .xmlファイルでこれらの文字を使用できないことを忘れています。それらはその構造を構築しているからです。これを頭に入れておく価値があります。

0
serwus

"Build-> clean project"と "sync project with sydle"をした後。どちらも解決されていません。 gradleのバージョンを3.3.0 => 3.2.1(プロジェクトの初期状態に戻す)からダウンビルドして問題を解決しました.

0
Lwf804

何も私にはうまくいきませんでした、それから私はそれが機能するように私のAndroidスタジオを更新する必要があります。 Android Studioを最新バージョンにアップデートした後、問題は解決しました。

0
Shivam Yadav
  1. 1を入力します。プロジェクトを閉じて、プロジェクト内の.gradleファイルを削除してから、プロジェクトを再構築します。
  2. タイプ2:タイプ1が機能しない場合は、単にそのproject9のバックアップを取り(9Zip)、プロジェクトを削除します。それからZippedプロジェクトを抽出し、抽出されたプロジェクトをインポートするだけで、それは私にとってはうまくいくので、それは完全にうまくいくでしょう。
0
Manjunath

私はmulti-moduleプロジェクトに取り組んでいます。そして、これは私がすべてのuiコードを新しいモジュールに移動したときに起こりました。

これが問題の解決方法です。 新しいui moduleを作成すると、それが/res/valuesの中に新しいstrings.xmlを作成することになり、役に立ちません。 私はそのstrings.xmlファイル、rebuildプロジェクトを削除し、そしてそれは動作します。

0
laixiaoyuan

私の場合、私はプロジェクトをcleanrebuildにしようとしていました。レイアウトファイルにエラーがあるため、問題は修正されませんでした。再現するために、私はアプリ名前空間の属性にタイプミスを加えました。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android" xmlns:app="http://schemas.Android.com/apk/res-auto">
    <item
        Android:id="@+id/add_user"
        Android:icon="@Android:drawable/ic_menu_add"
        Android:title="Add User"
        app:showAsActioin="always"
        />
</menu>

Android Studioはapp名前空間の属性を検査していませんでした。ファイルにエラーはないようです。今プロジェクトを構築しながら、それはCannot resolve symbol 'R'を言います。エラーはビルドログに表示されます。

Cannot resolve symbol 'R' - Android Studio

タイプミスを修正することで修正されます、 Androidの問題を監視 ビルドログのセクション。

0

私にとっては、最初からAndroid Studioで学習に支障があると言うことが重要ですが、ここでClean Projectが解決できる解決策があるように、いつもパック名をチェックして、ロジックに関する混乱を試みないでください。しかし、時には私はそのやり方が正しいかどうかを考えようとします。私もLinuxが好きですが、私のAndroid Studioではすべてのソフトウェアを書き直す必要があるかもしれません。とにかく頑張ってください!!!!

0
Pedro Duarte

プロジェクトのgradle(すなわち)build.gradleで、com.Android.tools.build:gradleを のように更新するだけです。

依存関係{

クラスパス 'com.Android.tools.build:gradle:3.2.1'

}

0
Gowtham. R

Gradleコンソールを見てください。私の場合は、間違ったファイル拡張子のリソースを含めていました。

AAPT: libpng error: Not a PNG file
:app:mergeDebugResources FAILED

FAILURE: Build failed with an exception.

ファイル名とSync Project with Gradle Filesの名前を変更した後、すべてうまくいった。

0
creep3007

私は同じ問題を抱えていました: Android Studio 3.2 プロジェクトはコンパイルされて正常に動作しますが、画面に「シンボルを解決できません」という警告が表示されます。

しない help:

  • ビルド - >クリーンプロジェクト 
  • ビルド - >プロジェクトの再構築
  • ファイル - >キャッシュの無効化/再起動

に役立ちます:

どちらか 

build.gradleで

dependencies {
        classpath 'com.Android.tools.build:gradle:3.3.0'
...
}

と置換する 

   dependencies {
            classpath 'com.Android.tools.build:gradle:3.2.1'
    ...
    }

または

Android Studioを 3.3 に更新します

0
Alex Burov

ほとんどの場合、この問題はXMLファイルが原因で発生します。XMLファイルを見て、エラーを探します。

0

私は究極の解決策があると思います。私は調査を行い、Android Studioがインストールパスまたはディレクトリに「White Spaces」を嫌っていることを発見しました。空白を含むディレクトリに配置されたSDKは受け入れられません。例えば

C:\ Program Files(x86)\ Android\sdk 

空白が含まれているため、このディレクトリは無効です。 ここ /私は、彼のSDKディレクトリに空白があるために、男がAndroid Studioで彼のJDKパスを変更することができなかった質問にすでに答えました。これは奇妙なことですが、Android Studioは空白を含むディレクトリを嫌っているようです。だから解決策は -

Android StudioとAndroid SDKを、空白やスペースがないディレクトリまたはパスにインストールします。

たとえば、Android Studioを次の場所にインストールします。

C:\AndroidStudio\

そしてAndroid SDKをにインストールします。

C:\Sdk\

空白がないので、この両方のディレクトリは有効です。空白を含まないすべてのパスが有効です。また、「解決に失敗しました:junit:junit:4.12」や「Gradle sync project failed」などの他の問題も解決します。

0
Akshay

//同期が不完全なためにいつか問題が発生する 

//手順に従うだけで、確実に作業が完了します。

Click on Build->Clean Project and that will perform a gradle clean
0
Jay

2つの場所に同じimage.pngファイルがあるため、未解決のR問題がありました。 res> animの1つとres> drawable-hdpiの同じファイル。これにより、Rは未解決になりました。 スプラッシュスクリーンイメージを作り、それをMorayグラフィックスディレクトリから直接Androidプロジェクトに繰り返し移動することで問題を発生させました。偶然res> animフォルダに落としたに違いありません。 res> animフォルダから重複した画像ファイルを削除することで問題を解決し、Android Studioは自分自身を修正しました。

0
Paul Moore

Xmlファイルにアプリの名前空間を定義するだけでこれが発生する可能性があります。これは完全に無害な行で、未解決のために1つのシンボル(多数のうちの1つ)を選択しただけです。下の写真で灰色になっている行全体を削除するだけで、コードが未解決のシンボルを参照できるようになりました。この行を追加しても問題なくビルドすることにしました。図に行きます。

enter image description here

0
Alyoshak

私の場合、その理由はresフォルダにいくつかの画像に名前が含まれていたからです。

小文字で名前を変更して再構築するだけです。

0
Mohammad Shraim

それは単純な "プロジェクトとGradleとの同期"です。

0
Ananta Prasad
     The above answers are also the ways to fix the error but if does not work for anyone  then i have an option...

プロジェクトを閉じて、それ以外のものは何もせずにもう一度起動して、参照を読み込みます。スクリーンショットに従います。

enter image description here enter image description here

0
muhammad obaid

私は同じ問題を抱えていました。私は他の人が上述したもののほとんどを試してみた、すなわちGradle同期、キャッシュの検証、プロジェクトの再起動、プロジェクトのクリーンアップ、そして再構築... Android Studioを再起動しても同じ問題があった...

ここで私にとっての問題は、私は他の人が同じ問題を抱えているかもしれないと思っています。新しく作成したレイアウトファイルの名前にスペースがありました... file_example.xmlの代わりに_ mineがfile _example.xml **(ファイルと_の間のスペースに注意)* *このレイアウトファイルへの参照を見つけようとすると、エラーが発生します。

作成したばかりの最新のレイアウトファイルを見て、名前を少し修正してからactivity/fragment - > のR.layoutから新しいファイルへを変更します。clean..rebuildプロジェクトの場合、プロジェクトはエラーなしでコンパイルされます。少なくとも私の場合は、これが私の問題の解決策でした。

0
NelsonRoberts

私はエラー 'Unable to resolve symbol R' に直面しています。私はそれを解決しました。

  1. ABC.pngのように大文字ので画像を保存しないでください。 
  2. クリーンプロジェクト 
  3. プロジェクトを再構築
0
kiran bankar

以下のIDE機能を考慮に入れてください。

  • プロジェクトをGradleファイルと同期する
  • ビルド - >クリーンプロジェクト
  • ビルド - >プロジェクトの再ビルド
  • ファイル - >キャッシュを無効にする

私の簡単な解決策は、

  1. アプリのbuild.gradleの依存関係または all /resディレクトリのリソースファイルに、エラー行がないことを確認します。一般的なエラーには、使用時に属性値が参照なしで残されている場合があります。
    • "@文字列/ .."
    • "@スタイル/.."
  2. Androidリソースのリンクに失敗しました プロジェクトが再構築されたときにエラーが発生していないことを確認してください。
  3. エラーが発生した行を含むファイルを開きますCannot resolve symbol 'R'
  4. 上記エラー行でクラスの最後の行までスクロールする
  5. クラスの終了キー } の右側の位置をクリックします。 

このようにして、IDE警告ダイアログが表示され、Rクラスのインポートが実行されます。

GL

0
IT Developers