Android Studio中的“無法解析符號R”


14 Answers

在Android Studio的最新版本中,至少對我而言,以下工作:

“工具” - >“Android” - >“使用Gradle文件同步項目”

Question

在我引用R.id.something所有類中的每一個實例中, R都是紅色的,它表示“無法解析符號R”。 同樣每次都有R.layout.something以紅色加下劃線並且表示“無法解析方法setContentView(?)”。 該項目總是很好。 看到這一直是令人討厭的。 我已經在這裡閱讀了許多其他類似的問題,但大部分都涉及從eclipse導入項目。 我正在使用我認為是android studio的最新版本,並且該項目是使用android studio創建的,沒有任何解決R問題的工作。 如果有人知道,我想知道是什麼原因造成的。

更新 :解決方案:當時android studio是全新的,我也是一個全新的開發人員。 我不應該使用android studio,我從來沒有意識到它是如何未完成的。 感謝大家在嘗試提供幫助後提供的支持,因為這已經發布。 具有諷刺意味的是,這個問題的實際答案已被刪除,無法取消刪除 。 我覺得我的原始答案是解決這個問題的方法。

我原來的回答被刪除了:

我想我已經找出了這個問題。 問題出在Android Studio上,每當我添加admob庫時,所有這些錯誤都開始了。 我所有其他沒有廣告的項目都沒有類似的問題。 我現在使用Intelij並遠離Android Studio




  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文件和乾淨的項目。




改變最新的sdk版本,這對我很有用

1.單擊文件,然後單擊項目結構2.然後選擇“應用程序”,然後單擊確定,它為我工作。




我最近有這個問題,乾淨/建設等沒有解決它。 我猜我在某個地方遇到了問題,但不確定在哪裡尋找它(是否在清單中,資源XML文件等?)。

如果出現問題,您可以通過執行代碼分析來了解它是什麼。

從頂部的菜單中選擇:

分析 - >檢查代碼,使用“默認”配置文件掃描整個項目。

您的檢測結果將包含一個名為“Android”的元素。 在這裡,您將獲得任何導致資源和清單文件出現問題的列表。 這些錯誤將打開您的構建生成的XML文件,這將顯示紅色的任何錯誤。

我的確切問題是由於我使用基於flavor的清單文件而引起的,我偶然在<application>標記中復制了一些權限。

更新:在Android Studio仍然在修復後顯示錯誤之後,我確實遇到了問題,儘管現在可以在錯誤仍然存在的情況下生成並運行得非常好。 (我正在運行一個金絲雀建設,所以現在把它放下來)




導致此錯誤的原因很多。

  1. 有時會出現這樣的情況,即用同名的圖像文件替換。
  2. 假設你從佈局.xml中刪除了一個項目,並且聲明了一個<Button/>但它仍然在任何Activity或片段.java中聲明。
  3. 還有很多。

跟踪錯誤的最好方法是重建它,而非干淨或同步做一些故意的錯誤。

如果它不能解決你的問題,那麼必須有一些缺陷或運行時錯誤或由於資源使用不當造成的錯誤,可能是你的代碼中的java或xml文件或迫使gradle停止的設計,因為(R )esource文件無法正確索引資源,您必須承認這一點。

如果您的項目在進行更改之前運行,請註釋您所做的更改並嘗試重建項目。

它肯定會起作用,因為不會有任何變化。

要追踪確切的錯誤,請通過將更改分解為更小的模塊來檢查更改。

例如 - 如果通過單擊按鈕使列表可見並在適配器中插入列表值,請首先檢查是否可以使其可見或不可見,然後檢查適配器錯誤。




我不得不在android studio中導入我的R包。 例如: import com.example.<package name>.R




這個問題似乎有很多原因。 最近,我添加了一個活動,以稱為NewActivity進行測試。 這創建了一個名為res/menu/new.xml的文件,並且gradle不喜歡這個名字,因為new是一個保留字。

gradlew clean

要么

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

這些絕對是很好的嘗試,但在運行這些命令之前,您可能還需要解決一些其他問題。




你最近是否更新過SDK工具? 啟動android SDK管理器並確保您擁有最新的SDK工具,它現在與平台工具分開。 當我第一次更新我的SDK管理器時,我遇到了同樣的問題,在我關閉並重新打開SDK管理器之前,SDK 編譯工具包沒有顯示出來進行安裝/更新。




這個表示法似乎工作正常。

android:id="@+id/viewID"

Android Studio的設計面板似乎不太好。




我有這個

  1. 我可繪製資源中的大寫字母。
  2. 導入由Android Studio(或Eclipse)添加的Android.R
  3. xml文件錯誤



老兄,我認為這里黑暗中有很多鏡頭。 在某些情況下,只有在解決問題後,清理和同步項目才會有所幫助。

第一步:所以去看看包裝的每個文件的頂部,如下所示pakage="YourURL.YourProject"; 並確保指定了正確的軟件包(您自己的項目)。 您可以在java文件和AndroidManifest.xml中找到它,並且對於java文件來說,引用正確的包是至關重要的,因為該包包含您指向的資源(“R”)。 如果它們不匹配,無法解決符號R發生的錯誤。

第二步:清理,同步,不管。 完成

那麼為什麼這會隨機發生,或者我做錯了什麼?

如果你複製和粘貼代碼,你應該密切關注上面解釋的“package =”。 更重要的是,當你粘貼代​​碼時,它會立即運行一種調試器 (請原諒我的壞技術術語)向你展示“假定的錯誤”,它會立即考慮到“錯誤的包”,並且你會得到所有的錯誤。 因此,即使您在粘貼後立即更正了記號,調試器也已刷新。 這就是為什麼“乾淨,同步,無論”有什麼作用有時候




構建>清潔項目

這對我有效。 幾次有同樣的問題,這似乎是正確的。 除非你改變了某些東西或稱為變量R.這個問題通常發生在任何地方,當它發生在我身上時,所以我想它的Android工作室會嚇壞了。 哈哈

祝你有個好的,祝你的項目好運。




上述答案都沒有幫助我。 我終於意識到問題在於Android Studio中缺少“build”文件夾。 我在項目“iml”文件中找到了許多行,不包括“build / *”。 刪除這些後,生成文件出現,錯誤消失。




我遇到了同樣的問題,並且在創建新項目時發生了這種情況。

我所做的是:

  • 檢查SDK更新
  • 然後android studio更新,
  • 然後重新打開該項目
  • 打開andoridmanifest.xml
  • 擦除android:標籤中的“_>”並保存之間的空格。

這對我行得通。




只需清理您的項目並使用Gradle文件同步項目。

問題將得到解決。




Related