[IntelliJ IDEA] 如何總公司決匯入舊版Android應用時的Cannot resolve symbol R問題

IDEA Android 設定問題

最近在修改一個2015年的Android應用,使用Android Studio 3.3皆能正確運行,但使用IDEA 2018.3開啟時,在編輯器裡卻出現Cannot resolve symbol R的錯誤,雖然能正確編譯、產生apk檔,但在編碼過程中總是覺得不妥,例如輸入 R.id 無法出現可用的項目,還是花點時間來查問題解決。

搜尋了網上的解法都無效,猜測可能是早期版本的.idea設定和新版的有差異,造成原始檔的Dependencies出現狀況,開啟Project Structure,查看模組的原始碼目錄,src/main/gen/R.java沒有被包含在內,因此編輯器找不到需要的R.java因而出現錯誤。點擊gen資料夾後再按上方的【Sources】將gen加入原始碼清單裡,編輯器的錯誤就消失了。

idea

然而這卻不是永久解決的方法... 在Clean Project / Rebuild Project後,gen會被移除,編輯器錯誤又會再度出現。

最後的解決方法步驟如下:

  1. 在模組的根目錄下建立資料夾 R (與src同層)
    是把src/main/gen裡的R.java複製到原本就在原始碼清單裡的 build/generated/source/buildConfig\debug\內的對應位置才徹底解決此問題。
  2. 將src/gen裡的內容整個複製到 R
  3. 將資料夾R加入原始碼清單

錯誤永久消失了。

src/gen裡的R.java只是個有class名稱的檔案,和最後有內容的打包時的R.java不同,不必擔心影響到最後的apk檔。

IDEA R

##

您可能也會有興趣的類似文章

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,樂於分享所知所學。

您可能也會喜歡…

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *