2016-01-10 155 views
0

我一直在一個應用程序工作,一切進展順利,一切工作正常。然後我在主要活動中修改了一些代碼,當我嘗試運行應用程序時,代碼中出現明顯錯誤,構建失敗。android studio無法解析符號R

之後,所有對我的佈局文件的引用都不再起作用(即R.layout。)。R是紅色的,懸停在「無法解析符號R」上。

搜索你會發現幾十個帖子,提出了許多修補程序,如:Clean Project;重建項目;與Gradle文件同步項目;使Cashes/Restart無效;檢查xml的錯誤,重新啓動Studio等...我已經嘗試過所有。

無法在我的情況下工作。

我的代碼工作正常,沒有錯誤,因爲我可以創建一個新的Android Studio項目,並添加我的類和資源。新的Android Studio項目將使用不同的包名稱運行SAME CODE。

我後來遇到了同樣的問題,我依稀記得從我的項目文件夾中刪除了某些東西(可能是文件夾或文件)。我不記得我刪除了什麼,但確實解決了問題。

感謝您的任何建議。

我終於得到了Android Studio沒有錯誤,但老實說我不知道​​這是怎麼發生的。我非常困惑的是,每次將項目複製到歸檔目錄並重新開始時,我都可以創建一個可以工作的項目,並且不會有多個副本(我必須從頭開始重新創建項目10次)。我的構建需求之一是我需要在Jelly Bean上編譯,我認爲當您使用空白活動打開一個新項目時,Android Studio會設置某種默認設置。總之,每一個發生R.錯誤時生成警告將顯示此:

<style name="Base.Widget.AppCompat.Spinner.Underlined" parent="android:Widget.Material.Spinner.Underlined 

但我的代碼不包含一個微調,讓我實在想不通的地方,這是來自哪裏。事實上,我試圖用我的工作副本(清單,代碼,gradle.build等)中的文件替換我的一個無法保存的項目中的文件,但一旦無法運行,似乎Studio項目將保持這種狀態。

我希望我可以重現這個問題,但我不能。

WTF!在認爲我解決了這個問題後,它又回來了。從我的工作項目中,我做了2件事。添加了一個非常簡單的活動,並將其添加到清單中。試圖運行該項目,並再次獲得同樣的錯誤,引用一個微調。 Gradle構建消息是:

C:\CargoBay\Android\LandApp\app\build\intermediates\res\merged\debug\values-ldltr-v21\values-ldltr-v21.xml Error:(3) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Spinner.Underlined'.

我從我的項目中刪除了新代碼,但它仍然無法構建。

我不知道現在該想什麼。

+0

還手動刪除所有「構建」文件夾不幫助嗎? –

+0

你可以嘗試刪除「bin」和「gen」並清理構建嗎? –

+0

當我刪除「build」文件夾時,Studio將其替換,而R.仍然無法解析。 ..很抱歉,我不知道「bin」和「gen」指的是什麼(沒有找到這些名字的文件夾)。 – user2254532

回答

0

在Android Studio中選擇你的項目文件夾,進入VCS/Local History/Show History。顯示歷史記錄將列出已移動或刪除的所有文件,併爲您提供恢復文件的選項。 如果您選擇主要活動代碼,它將顯示代碼更改的歷史記錄,並且您可以恢復到之前運行的代碼。

enter image description here

+0

你假設OP使用VCS? –

+0

本地歷史記錄內置於Android Studio,並自動記錄所有項目的更改,無需用戶操作。 –

+0

有趣。猜猜我從來沒有真正需要這個功能足夠使用它 –