Android Studio “Sync project with Gradle Files”按鈕消失問題

##背景
今天用Android studio的過程中,突然發現工程報錯,出現sync project這個同步按鈕消失不見,懵b了。

##現象描述
1.Sync project with Gradle Files按鈕消失不見,app標記紅叉
這裏寫圖片描述
2.android project區域也沒有東西,難道module被我刪了?打開project structure 面板,一臉尷尬(完全不知道什麼玩意兒,和往常見的不一樣嘛)
這裏寫圖片描述

##解決方案
1.網上搜索,壓根沒人問這問題,我表示很尷尬,意思說這問題很低級了?我很受打擊,又或者我搜索方式不對,我就更受打擊
了。
2.各種嘗試,project structure面板一頓亂點,希望在下面的log處有些什麼提示吧。然後並沒有。。
3.看來得重新建工程了?萬一下次寫了很多代碼出了這問題我還不被自己弄死,那就新建了一個project,查看兩者文件夾下有什麼不一樣的地方,發現工程中少了個.iml文件,看來這一切異常基本和這個iml文件有關係了。
4.經過嘗試使用,經過嘗試,只要重啓android studio打開該項目即可(剛開始我拷貝了一份iml文件過來,重啓,ok,我以爲是拷貝iml文件的原因,後來我想也可能是由於重啓後ok的,所以又刪了iml文件,重試了一把,發現這文件壓根會自己生成嘛)
##原因
到底是什麼原因造成的這個問題,那就去搜索一下iml文件的用途,中文相關的問題和回答並沒找到,還是用英語在stackoverflow上試試,第一條便是:What are iml files in Android Studio?

引用原文

IML is a module file created by IntelliJ IDEA, an IDE used to develop Java applications. It stores information about a development module, which may be a Java, Plugin, Android, or Maven component; saves the module paths, dependencies, and other settings.

However, Gradle is not IntelliJ IDEA’s native project model — that is separate, held in .iml files and the metadata in .idea/ directories. In Android Studio, that stuff is largely generated out of the Gradle build scripts, which is why you are sometimes prompted to “sync project with Gradle files” when you change files like build.gradle. This is also why you don’t bother putting .iml files or .idea/ in version control, as their contents will be regenerated.

第一段說明了iml文件爲idea自動生成,並且裏面存儲了關於dev module信息等;第二段告訴爲什麼當你改變build.gradle文件市會提示點擊“sync project“;爲什麼在版本控制中不用加入iml文件和.idea/文件夾下的東西,因爲他們會重新生成。

--------------------------------------------------------------注意--------------------------------------------------------------

看到評論區有許多朋友問爲什麼重啓還是不管用,這裏統一回答一下,如下: 出現評論區這種現象的原因最大的可能是,你導入的工程不是一個符合android as項目結構的項目,比如你們公司先創建了一個rootproject的倉庫,然後又在這個倉庫中添加了你們的android工程aproject以及其他文件夾,這個時候你們老大給你的git地址其實是rootproject的地址,這個地址裏包含了你們android工工程aproject和一些其他文件,如果你使用as直接用
在這裏插入圖片描述
來導入git地址所指向的項目,你會發現導入進來的是rootproject整個文件夾的,你的as當然識別不了,你需要使用git先將rootproject 克隆到本地,然後用open的方式找到rootproject文件下的aproject並打開

發佈了28 篇原創文章 · 獲贊 63 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章