ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

IntelliJ IDEA 从入门到实战:配置、调试、协作与高频报错全解析

IntelliJ IDEA 从入门到实战:配置、调试、协作与高频报错全解析 用了这么多年 IDEA我最大的感受是这玩意儿入门容易但想用得顺手光靠“会点按钮”远远不够。很多人装上之后第一步就卡住了要么是 Maven 依赖下不动要么是网上搜了一堆配置教程照着配完还是报错要么是同一个项目在自己电脑上跑不起来在公司电脑上却没事。这篇不打算复读官方文档我就把这些年实际踩过的坑、排查过的报错、以及团队里被问过最多的高频问题一次性整理出来。从安装选型、环境配置到跑通 JavaWeb 项目、日常开发小技巧再到 SVN/Git 协作、Docker 打包、插件开发基本覆盖“从零到能干活”的全过程新手照着做能少走弯路老手也能顺手补齐几个平时没注意到的细节。1. 版本怎么选、环境怎么配IDEA 上手前的三件套1.1 旗舰版还是社区版别等建完项目才发现功能被阉割很多新手第一次打开 IDEA 官网面对 Ultimate 和 Community 两个版本直接懵了。说句实在话社区版并不是不能用但它的功能边界划分得特别“鸡贼”如果你想做的只是纯 Java SE 项目、写点算法题、跑个控制台程序那么免费的社区版完全够用甚至比 Eclipse 好用一个量级但只要你沾到 JavaWeb、Spring Boot 这类企业级开发社区版就立刻不够看了——没有 Spring 框架的代码提示和 bean 自动装配支持、没有 JavaEE 相关组件、数据库工具窗口也基本等于残废连新建一个 JavaWeb 工程的标准模板都没有。所以结论很简单做 JavaWeb / Spring Boot 项目直接上旗舰版。别在社区版上折腾“怎么配置才能跑 JavaWeb”那属于用错误工具干正确的事折腾一下午装一堆第三方插件最后的效果还不如旗舰版开箱即用。价格的问题怎么解决如果你是在校学生用教育邮箱去 JetBrains 官网申请教育授权旗舰版直接免费如果已经工作了我的建议是别碰网上那些“破解版安装教程2022/2023”之类的资源——说实话那些东西除了容易让人社死还可能给团队和公司带来合规风险。JetBrains 的全家桶一年的订阅费用摊到每个月也就一顿火锅钱加上经常有促销折扣为开发体验买单是很划算的。1.2 JDK 与 Maven项目跑不起来的元凶八成在这两处装好 IDEA 之后第一件事不是急着写代码而是把 JDK 和 Maven 配置好。先说 JDK打开File - Project Structure - SDKs点加号把本机已经装好的 JDK 目录加进去。这里有个很隐蔽的坑IDEA 对“SDK 版本”和“项目语言级别”是分开管理的即便你在 SDKs 里选了 JDK 17但如果 Project 里的 Language Level 还停留在 8那么代码里用了var、record这类新语法照样报错。所以选完 SDK 之后顺手把 Project 的 Language Level 和 Modules 里的 Level 一并调成和 JDK 匹配的版本三方保持一致就不会出现“明明 JDK 配置了代码还是标红”的诡异问题。再看 Maven这是 JavaWeb 项目日常开发里最容易卡壳的环节。IDEA 内置了一个 Maven但默认用的 settings 文件指向的是中央仓库国内网络环境下拉依赖慢得像蜗牛甚至直接卡死。我刚工作那会带过一个新人他建完 Spring Boot 项目之后等了一下午依赖都没下完就是他压根不知道要改国内镜像。正确做法是下载一份完整的 Maven 解压到本地在conf/settings.xml里把本地仓库路径改成自己容易找的位置同时把中央仓库 mirror 替换成阿里云镜像。然后在 IDEA 的Settings - Build Tools - Maven里把 Maven home path 指到你本地那份 MavenUser settings file 选到settings.xmlLocal repository 会自动识别。配置好之后首次刷新会出现一个漫长的下载过程那个是正常的耐心等索引构建完之后项目就顺了。1.3 界面中文化顺手设置即可别为了这个装不靠谱插件中文版的问题比较简单IDEA 官方自带简体中文语言包直接在插件市场搜Chinese Language Pack安装并重启 IDE 就能切换成中文。这个语言包翻译质量还行不过我个人建议新手也稍微留意一下中文界面固然亲切但很多技术文档、教程截图、代码注释用的仍然是英文术语比如Refactor、Version Control这些词中英对照着记一记后面查资料会省很多事。顺便提醒一点千万别去下第三方汉化包那些东西往往版本跟不上还会把 IDE 的配置项改得乱七八糟实测出现过汉化之后设置项丢失的情况得不偿失。2. 跑通第一个 JavaWeb 项目从新建到看见页面2.1 用 Spring Initializr 创建新项目官方脚手架是最省事的路子现在创建 Spring Boot 项目我几乎从不用手动搭建目录结构而是直接在 IDEA 的欢迎界面选New Project - Spring Initializr。这一步有个小细节左侧选好 JDK 版本之后Service URL 默认是https://start.spring.io国内偶尔连不上可以换成阿里云的镜像地址https://start.aliyun.com这样项目元数据拉取得更快。填好 Group 和 Artifact接着在依赖列表里勾上Spring Web、Thymeleaf如果做页面的话、MySQL Driver这些生成之后项目结构就是标准的 Maven 工程什么都不用手动补。生成完项目的第一个动作不是急着写 Controller而是右下角会有一个 Maven 导入的进度条等它跑完、依赖全部下载完毕再展开src/main/java找到SpringBootApplication注解的主类右键 Run。这里再强调一次如果运行按钮跑着跑着报“程序包不存在”“找不到符号”九成是 Maven 依赖没下全或者本地仓库缺包先去 Maven 工具窗口刷新一下再说别一上来就 CtrlC 重新建项目。2.2 老项目怎么导进来打开方式不对整个工程都可能废掉很多从 Gitee 或 GitLab 拉下来的老项目新手习惯直接双击.java文件打开然后发现 IDEA 里只有一个孤零零的源码文件什么 Maven 结构都没有彻底傻眼。正确姿势是在欢迎页选择Open然后定位到项目根目录找到pom.xml文件选中它并点击 Open as Project。IDEA 会识别出这是一个 Maven 项目自动导入依赖并构建索引。这里有一个容易踩的坑有的项目pom.xml在子目录里如果项目根目录层级比较深IDEA 有时会弹窗问“是否信任该 Maven 项目”这个必须点 Trust否则依赖导入会被禁用。另外如果打开之后发现右侧 Maven 面板里只有根项目、没有子模块检查一下根pom.xml里是否声明了modules如果确实没定义模块结构那这个项目本来就是一个单模块工程不是 IDEA 的问题。2.3 从 Gitee 拉取项目到 IDEA两种方式各有适用场景从 Gitee 拉项目的场景太常见了团队协作或者接外包都离不开。IDEA 旗舰版和社区版都内置了 Git 支持方式一在欢迎页选Get from Version Control粘贴仓库地址选择 clone 目录点击 Clone方式二在项目里打开File - New - Project from Version Control也能进去同样的界面。对于私有仓库IDEA 会弹出登录框Gitee 的账号密码或私人令牌都可以填一次之后凭据会保存在本机后续 pull/push 不需要反复输入。不过我更推荐的方式是用命令行先 clone 再打开直接在终端执行git clone https://gitee.com/xxx/project.git然后把目录拖进 IDEA。原因很实在——命令行 clone 能看到进度和报错信息特别是仓库比较大的时候IDEA 内置的 clone 界面一旦卡住既不显示实时进度也没有明确的错误提示用户体验挺痛苦而命令行里网络失败、token 失效都能一眼看清。克隆下来后IDEA 会自动识别出是 Maven 还是 Gradle 工程等索引建完就能正常开发。2.4 运行 Web 项目并打断点调试这几步别忽略Spring Boot 项目跑起来简单右键主类 Run 即可。启动类跑起来后浏览器访问localhost:8080能看见页面就算基本通了。这里要说下内置 Tomcat 的端口冲突问题——如果启动日志里出现Port 8080 was already in use说明有别的进程占了 8080。Windows 上用netstat -ano | findstr :8080查 PID然后任务管理器结束对应进程Mac/Linux 用lsof -i :8080查。如果你懒得处理也可以直接在application.properties里改server.port8081。关于打断点新手容易犯的错误是把断点打在方法签名上然后满脑子问号“为什么没停下来”。实际上断点应该打在方法内部的具体行号上点击行号右侧空白处出现红色圆点即可。启动后以 Debug 模式运行小虫子图标程序执行到断点所在行时会暂停此时可以查看变量值、步进执行。还有个小技巧在方法调用处按Alt F8Mac 是Option F8可以弹出一个 Evaluate 表达式窗口直接输入变量表达式并求值好处是调试复杂逻辑时不用每到一行就盯着 Variables 面板翻半天。3. 高频开发操作被问过无数次的 IDEA 小问题3.1 导入 JAR 包的两种思路哪种才是“正规军”“IDEA 怎么导入 jar 包”这个话题基本每隔一段时间就会在团队群里冒出来一次。很多教程会叫你下载 jar 包然后在File - Project Structure - Libraries里点加号手动添加这种方式确实能加入全局库但它有个明显缺陷只对当前项目生效换台电脑或者同事拉你的代码之后jar 依赖就丢了。更严重的是这种手动导包的方式无法记录在版本控制里协作时别人不可能知道你加了哪个包。所以正确做法取决于你的项目类型。如果是 Maven 项目直接在pom.xml里加dependency坐标让 Maven 自动下载并管理依赖这才是标准做法如果项目是传统方式、没有用 Maven那再考虑手动导入 jarProject Structure - Libraries - - Java - 选中目录然后回到Modules勾选确认该 Library 被这个 Module 引用。另有一个容易被忽略的场景打 War 包或运行测试时jar 包明明在 Libraries 里也勾选了却还是报ClassNotFoundException这时要在Artifacts里确认该 library 已经勾选“包含在构建产物中”这一步才是“手动导包”流程里最终的临门一脚。3.2 代码格式化突然失效先查这四处别急着重装代码格式化失效是 IDE 里最玄学的问题之一。你在代码里按Ctrl Alt LMac 是Option Cmd L光标乖乖变成转圈代码却纹丝不动或者只格式化了一小部分。遇到这个先别急着重装按顺序排查第一检查是不是进入了 Power Save Mode省电模式File - Power Save Mode这个模式下 IDEA 会关掉大量后台功能包括代码格式化、代码检查、实时模板补全处理方法就是把它关掉第二检查 Keymap 是否被改过Settings - Keymap搜Reformat Code看看快捷键绑定还在不在很多插件或意外操作会重置快捷键第三检查文件是不是只读在版本控制里被标记为 read-only 的文件确实无法格式化第四检查项目里有没有.editorconfig文件这个文件对代码风格有强约束力如果它定义的规则和你的格式化配置冲突按格式化快捷键时某些改动会被编辑器忽略。我印象最深的一次是帮同事排查他项目里莫名其妙多了一个.editorconfig里面写死了indent_size 2而他的代码风格是 4 空格缩进导致按格式化快捷键时缩进永远不变他还以为 IDEA 坏了。后来盯着文件列表看半天才发现罪魁祸首。所以遇到格式化失效先打开项目根目录找有没有这个配置文件有的话直接删除或改成统一规则就行。3.3 一键生成类图搞懂继承关系的神器看老项目的类结构是非常头疼的事情——一堆类互相继承、实现了十几个接口光靠肉眼翻代码根本理不清。其实 IDEA 自带类图功能在类或接口上右键 -Diagrams - Show Diagram Popup快捷键Ctrl Alt Shift U就能生成当前类的继承关系图你可以在图上看到它继承的父类、实现的接口再用鼠标点到某个父类上继续 Expand整棵继承树就展示出来了。这个功能对于新手理解设计模式尤其好用比如看策略模式时点开一个 Context 类的类图瞬间明白为什么它持有一个接口引用、运行时却能调用到不同的实现类。如果你需要把类图保存下来放到文档里IDEA 生成的图可以导出为 PNG 或 SVG。另外一个隐藏玩法在类图空白处右键可以切换显示成员变量、构造方法、方法等默认情况下它只显示类名勾选“Show Fields”“Show Methods”之后类图会变成带有成员信息的 UML 图配合团队内部技术分享去做架构讲解效果非常直观。注意这个功能旗舰版默认支持社区版体验会打折扣。3.4 前端项目里 target 目录为什么死活不显示这个问题的本质是 IDEA 的排除目录机制。在一个 Maven 项目里target 目录是编译输出目录IDEA 默认会把它标记为“已排除Excluded”所以在 Project 视图里你看不到它。解决方案有两个路径最温和的方式是在 Project 工具栏右上角有个齿轮图标点开后勾选Show Excluded Files这样 target 目录就会以半透明的灰色文件夹显示出来如果你希望 target 图标完全正常显示可以右键 target 目录 -Mark Directory as - Not Excluded但我不建议这么干因为排除 target 可以让搜索范围更干净防止索引把编译产物当成源码搞出重复类定义的报错。还有个更隐蔽的细节有时候 target 目录明明存在但因为 IDEA 的缓存文件没更新视图里依旧不显示。这种情况先尝试File - Invalidate Caches / Restart清掉本地缓存重启大概率就恢复了。顺带提一句网上有人问“target 目录存在但 IDEA 报找不到”多半是程序在运行期需要读取 target 下的资源文件而构建路径没有把resources目录包含进去右键资源目录 -Mark Directory as - Resources Root即可。4. 版本协作与故障恢复SVN、GitLab 和 merge 回退4.1 配置 SVNIDEA 装好了不代表就能直接用虽然现在 Git 是主流但不少老项目和政企客户依然用 SVN。IDEA 支持 SVN但它不是自带客户端而是依赖系统里已经安装的 SVN 命令行工具所以很多人一配置就报错Cannot run program svn。解决方法分两步首先在系统层面安装 SVN 客户端Windows 推荐 SlikSVN 或 VisualSVN安装时注意勾选“命令行工具”否则svn命令不会出现在 PATH 里macOS 的话用brew install subversion就行。装好之后在 IDEA 的Settings - Version Control - Subversion里选Use command line client并把svn.exe或者svn的路径填进去。配置完成后从仓库拉代码选Checkout from Version Control - Subversion填仓库地址、账号密码即可。这里有个容易卡住的点IDEA 的 Subversion 配置和登录凭据存储是分开的如果服务器要求密码而你选择“保存密码”时弹窗又被忽略后续每次操作都会反复要账密。另外 SVN 更新代码时如果提示 “working copy locked”通常是上一个人操作中途断线导致锁定去项目根目录执行svn cleanup就能解决。这个经验在跨部门协作时帮了不少忙。4.2 GitLab 登录报错的正确姿势Token 与版本兼容登录 GitLab 仓库时遇到login failed. gitlab versions older than 14.0 are not supported. log in这类错误其实原因很明确新版 JetBrains IDE 的 GitLab 集成已经不支持 GitLab 14.0 以下的 API 协议而公司或客户那边还跑着老版本 GitLab。报这个错的时候第一反应不应该是强行降级 IDEA而是去确认 GitLab 版本看看管理员是否已经把它升级到 14.0 以上。如果 GitLab 暂时没法升级常见于企业客户有一个兼容思路老版本 GitLab 仍支持通过Personal Access Token进行认证方式是在 GitLab 后台生成一个具有api、read_repository、write_repository权限的 token然后在 IDEA 登录时选择用 Token 方式认证而不是账号密码。实测这种方式在老版本 GitLab 上能绕开一部分协议兼容性问题。不过说到底这块属于“治标不治本”项目组之间如果频繁用到 JetBrains 集成最好还是推动运维把 GitLab 升级到新版本毕竟新版本的性能和安全都有明显提升。4.3 不小心 merge 错了怎么回退到 merge 之前的干净状态回退 merge 操作是 Git 使用中的高风险操作一个手滑就可能导致协作伙伴的代码“人间蒸发”。我在团队里见过不少次这种情况某天上午有人把功能分支 merge 到 master下午才发现 merge 进来的代码里有问题需要整体撤销这次合并。这里提供一个安全且标准的做法——既然 merge 已经提交到了 master不能直接git reset回退因为如果其他人已经从 master 拉过代码reset 会产生大量的分叉冲突。相对正确的姿势是使用git revert先打开 IDEA 的 Version Control 窗口找到 Git Log在提交历史里找到这次 merge 提交一般会有两个 parent确认哪一个是 merge 之前的那个 parent然后在终端执行git revert -m 1 merge提交的哈希其中-m 1表示以第一个 parent 作为主分支。执行完之后Git 会把 merge 带来的改动反向应用成一次新的提交这样就直接“取消”了合并效果同时保留了历史完整性别人 pull 也不会冲突。如果 IDE 内操作更方便也可以在 Git Log 里右键那条 merge 提交选择Revert CommitIDEA 会弹出对话框询问用哪个 parent此时选 “main” 对应第一 parent 即可。最后 push 到远程时加一条注意事项如果你 revert 的是远程已经存在的合并push 后最好在群里说一声免得有人又把旧 merge 重新合进来那基本等于白 revert。5. 进阶玩法插件、类图和 Docker 镜像打包5.1 从使用到开发插件到底怎么挑、怎么下手写IDEA 的生态之所以强大很大程度靠的是插件体系。日常开发中我常用这几个Lombok 插件解决实体类 getter/setter 的样板代码问题RestfulToolkit 能快速一个项目里有哪些接口路径点击跳转到对应 ControllerTranslation 插件配合 Google / 百度翻译看英文注释省不少事Maven Helper 用来分析依赖冲突排查NoSuchMethodError特别顺手。提醒一句插件别装太多有些插件会拖慢 IDE 启动还会互相抢占快捷键装到实际用得上就够了。如果你想自己开发一个 IDEA 插件其实没有想象中那么神秘。IDEA 插件本质上是基于 JVM 的插件程序使用 IntelliJ Platform SDK在 IDEA 里新建工程时选IntelliJ Platform Plugin模板就能创建插件项目。插件的核心是一个plugin.xml配置文件里面声明插件 ID、名称、描述以及扩展点然后你写一个继承AnAction的类重写actionPerformed方法就能在菜单或工具栏挂一个自定义按钮。我第一次写插件的时候以为需要懂很深的 IDE 内部机制实际做下来发现只需要搞清楚 Action 和 Plugin.xml 的关系就够了。如果后面有空我可以单独写一篇从零写插件的实操记录这里先提一句调试插件时不要用当前 IDEA 实例IDEA 插件开发工具会自动拉起一个新的沙箱 IDEA 实例来跑你的插件这样不会把开发环境搞崩。5.2 在 IDEA 里把 Spring Boot 项目打包成 Docker 镜像把项目打包成 Docker 镜像过去我们总是先去写 Dockerfile再跑到命令行 docker build一套流程下来还挺累。IDEA 从 2018 版本开始内置了 Docker 支持可以在 IDE 里直接完成“构建镜像 - 运行容器”。前提是本地先装好 Docker然后在Settings - Build Tools - Docker新版在Settings - Docker或Settings - Build, Execution, Deployment - Docker里添加 Docker 连接。Windows 上如果用的是 Docker Desktop选Docker for Windows套接字就行macOS 选Docker for Mac如果你连接的是远程 Docker 主机需要填 TCP 地址。配置完右侧会出现 Docker 工具窗口能看到本机镜像列表、容器列表和日志。要真正在 IDEA 里打包镜像常见的有两条路一条是写一个 Dockerfile然后在 Services 窗口选中 Docker 连接点击镜像构建入口指定 Dockerfile 和上下文目录另一条更省事——如果你的项目是 Spring Boot 2.3直接在 pom 里加 Spring Boot 官方插件配置IDEA 里执行spring-boot:build-image这个 Maven Goal就能自动生成 OCI 镜像。个人更推荐后者因为不需要手写 Dockerfile构建过程完全由插件自动完成。如果项目有定制需求比如需要修改基础镜像、加一些启动参数那就是 Dockerfile 的场景了。有一点要提醒打包镜像的关键是先将项目打包成 jar如果 jar 包没生成镜像构建必然失败。5.3 “新项目配置失效”的根源设置面板里的作用域没搞清楚很多人会遇到一个现象在 IDEA 里改了 Maven 配置、JDK 路径、代码模板当前项目立刻生效了但下次新建项目发现又回到了默认状态还得重新配一遍。这背后其实是 IDEA 的一个设计设置面板里的配置项分成“仅当前项目生效”和“对所有新项目生效”两层。改动Settings里的选项通常只对当前项目生效如果想让所有未来新建的项目都继承这套配置必须去File - New Projects Setup - Settings for New Projects里把相同选项改一遍。这个“新项目配置失效”的问题在社区里被反复追问大家普遍以为是自己没保存。实操一下你就明白了在Settings for New Projects里可以统一设置默认的 Maven home、默认的 JDK、默认的编码 UTF-8、默认的注解处理器等等这样以后每次新建项目都不用再折腾一遍环境。我个人的习惯是装好 IDEA 之后先花 20 分钟把所有默认配置一次性调好尤其是 Maven、JDK 和文件编码这三项长期下来能节省大量重复劳动。还有一个隐藏点如果你已经打开了多个项目窗口修改Settings for New Projects不会影响已经打开的项目它只作用于“新建”。6. 常见报错与异常排查速查6.1 启动报错“Error: transport error 202: send failed: permission denied”怎么破这个报错一般出现在远程调试Remote Debug或本地以调试模式启动时。报错信息中的transport error表示 JVM 的调试代理无法建立网络连接permission denied则说明权限不够。常见原因有两个一是你选了系统保留端口比如 1024 以下的端口而运行 IDEA 的普通用户没有权限监听这些端口二是防火墙或安全策略拦截了调试端口的连接。解决办法就是换成高位端口例如把调试参数里的端口改成8787或5005并且确保防火墙放行。如果你完全不明白自己配了什么调试参数可以在 Run 配置里找到 VM options删除多余的-agentlib:jdwp相关配置再启动一般就能恢复正常。6.2 IDEA 频繁自动关闭先查堆内存再查插件冲突IDEA 自动关闭尤其是编辑大文件或构建大型项目时突然闪退第一反应是看内存。Help - Change Memory Settings里可以调整 IDE 的堆内存如果你频繁出现卡死、崩溃多半是默认内存不够用了。我个人建议16G 内存的机器可以把最大堆内存设为 2048M32G 内存可以上到 4096M注意不是越大越好分配过多 IDE 内存会导致系统其他应用内存紧张。设置完内存后去Help - Diagnostic Tools - Log看日志如果崩溃前后日志里有某个插件相关堆栈异常禁用相应插件后重启即可。另外 Windows 上的显卡驱动问题也会导致 IDEA 界面崩溃表现为花屏或突然退出这时候需要去设置里把硬件加速关掉Settings - Appearance - Disable hardware acceleration。6.3 target 目录不显示、格式化失效等高频问题速查表最后把一些高频问题整理成一个速查表方便对照排错现象主要原因快速解决方案target 目录在 Project 视图消失被 IDEA 标记为 Excluded勾选 Project 齿轮里的 Show Excluded Files代码格式化快捷键无效Power Save Mode 打开或 Keymap 被改关闭省电模式重设 Reformat Code 快捷键项目里找不到 Maven 依赖本地仓库未配置或未导入检查 Maven settings.xml 与阿里云镜像配置刷新 Maven控制台输出中文乱码文件编码或 VM 参数不一致统一设置 File Encoding 为 UTF-8必要时在 VM options 中加-Dfile.encodingUTF-8项目导入后 Spring 注解不生效插件未加载或 SDK 语言级别过低检查 Spring 插件是否启用Project Structure 中统一 SDK 和 Language LevelGit 提交后 IDEA 找不到远程仓库更新凭据丢失或 push settings 有误在 Version Control 里重新登录 GitLab / Gitee 凭据运行 Web 项目端口被占用其他进程占用了 8080 等端口用 netstat / lsof 查找并结束占用进程或修改 server.port导入 jar 包后仍然运行报错jar 未包含到 Artifacts 输出Project Structure - Artifacts 里勾选对应的 library这份表格里的问题每一个都是团队里真实遇到过并且排查过一轮的。说实话IDEA 这种东西用久了你会发现它的“坑”基本都是规律的很少有真正的随机故障。大多数报错根本原因是环境配置不一致——JDK、Maven、编码、插件版本这些固定变量搞清楚了任何诡异问题都能迎刃而解。我自己这些年最深的感受是工具不在于装了多少插件、用了多新的版本而在于是否真正理解了它背后的机制。比如你知道 IDEA 设置面板里有“当前项目”和“新项目”两个作用域很多“配置失效”的困惑就不会发生你知道 Maven 依赖下载背后的仓库源和本地仓库概念依赖报错也一眼能定位你知道 Git 的 merge 与 revert 之间的区别回退操作就不会慌。希望这篇整理能让你少走点弯路哪怕只解决一两个困扰已久的报错也算值了。
返回列表