intellj(idea) 編譯項目時在warnings 頁簽框里 報 “xxx包不存在” 或 “找不到符號” 或 “未結束的字符串字面值” 或 “需要)” 或 “需要;”等錯誤提示


如上圖:

環境 是 剛換的系統,重裝的Intellj,直接雙擊老的皇帝項目中的idea的 .iml文件,結果 打開 intellj 后,進行 ctrl +shift +F9 編譯時 盡然報 錯誤提示,提示內容 有:

“xxx包不存在” 、“找不到符號”、“未結束的字符串字面值”、“需要;” 、“需要)” 等錯誤,可以我看了項目中右邊根本就沒有紅X ,即項目中根本就沒有報錯誤提示,只是下邊的warnings頁簽框報一大推錯誤而已,不知道為啥這邊報錯,報錯點對應代碼右邊為啥又沒有紅x提示錯誤?

還有就是 我去看一下錯誤的代碼,結果代碼也沒有什么錯誤。提示說找不到包的或者 類的,我都重新 引用了一遍 編譯時還是報錯,不知道什么情況? 不管是我重新編譯 還是build項目 還是rebuild項目 還是compile module  還是  make module 都沒用,還是報一大推上邊的錯誤,無解了。

 

結果 網上一搜 原來是編碼的問題,解決如下:

如下圖只要  把三處 都指明utf-8即可,不要用 "default system encoding"。這個問題一般出現在剛裝的intellj 或者 從 eclipse 導入的項目 還沒開始 設置編碼所致,都弄成utf-8 即可(如果還不行看本頁最下邊)。

 

如果上邊三處都改為utf-8了即 把idea 和項目 全局整體改為utf-8,但是 項目中極個別的類 文件 的編碼還是特殊的有問題的,即雖然是全局上把項目默認改為utf-8,但已存在的項目中的一些類的java文件 可能還是其他的編碼,那怎么辦,那就是根據提示最上邊的3張圖中提示 哪個類報錯就打開哪個類文件 然后 看idea最下邊是什么編碼,如圖:

上邊的這個編碼設置是當前 打開的這個java類文件的 編碼,不是全局編碼,所以 不僅僅要全局編碼要對,這個單獨的java文件編碼也要對,假如 這邊左擊改為utf-8后還是不行的話,那可能就是idea 反應慢的問題,即去 項目根目錄 下的 .idea 文件夾下找到 encodings.xml 文件,打開它,如圖:

里面有2個類,一個 是DebugGameServer.java 和 ManageHandler.java  這2個類 剛好就是 最上邊 3張圖中 報錯的2個類文件,這里一看 現在 第一個DebugGameServer.java 仍然是gbk編碼,而第二個類已經是utf-8了(剛被我改了),現在還有一個類為gbk,所以仍然還是報錯,那項目切換到DebugGameServer.java 這個類,然后把最下邊改為utf-8即可,如果 改了還不行,那還去上邊那個encodings.xml 文件 文件中看 還有哪個編碼是錯誤的java類文件,找到一個改一個,直到改好為止。

注:有的是時候可能多個類文件的編碼有問題,但是后台在啟動時只會包幾個別類錯誤,而不是全部在 encodings.xml 文件 中顯示出所有編碼有問題的類,不管,打開encodings.xml 文件看一個改好后再啟動項目,報錯的話再回來encodings.xml 文件 中看還有哪些新顯示出的有問題的類文件,再依次修改下去。

注:有時候報錯的話如果不知道是什么錯誤,其實 在 警告框中已經給出了答案,如:

 

注:類文件編碼錯誤可直接在idea最下邊看到當前類文件是什么編碼:

 

注:有的時候改了類文件的編碼后encodings.xml 文件中也都會了后,可是還不行,那可能是idea切換有問題,可以先再改為錯誤的編碼然后再改回正確的編碼,讓idea 有一個重新編碼的操作即可。

 @ 孫雅薇 那 剛 從svn down的項目,是 eclipse 的環境下的項目,結果用intellj 載入項目 后 出錯,顯示 包一個sun.com.xxx  一個錯誤,結果我點這個報錯的類 是可以找到 jar包的,那也是上邊的問題,我開始按照上邊改編碼 ,結果編碼改完 那個類 還是紅色,沒法 啟動,結果我是 把 報錯的類 都改成 gbk(intellj右下角直接改為gbk),結果就不報錯了,就可以 啟動服了。然后開始起服,結果報亂七八招的錯誤,先 把 ccs 那 ip 有問題,我給直接注釋掉了;然后又 報 KeyValueDictCache 中 ips 設置有問題,都是報格式錯誤,結果我斷點明明都是數字結果 在判斷數字 那反而還是報錯,結果我想想估計 是tm的 編碼問題,結果我把 原來紅色類的編碼 由 gbk 再改回utf-8,類也不會報錯了,這邊 啟動服,也不報錯了(游戲開服 報一些 ip 設置 數據格式的異常,但斷點明明都是數字 沒問題的)。無非就報一些 活動配置 和 沒有 在 dict_server 表中加入 剛駕服 的ip(少了這個ip 客戶端登陸是 報錯 傳遞參數 為空 之類錯誤)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM