①故障定位:LoginController.java第127行onLoginSuccess方法;②异常本质:调用null对象的length()方法;③触发路径:LoginService.handleLogin→LoginController.onLoginSuccess;④本地验证动作:在IDE中打开LoginController.java第127行设断点,复现登录观察token值
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你刚在本地跑通一个Java登录接口,日志里突然冒出“Caused by: NullPointerException”,光看堆栈完全找不到第几行、哪个变量出问题——这时候不需要翻源码、不用查文档,直接用对的提示词让Gemini把报错翻译成你能立刻动手检查的操作项。
三步锁定根因:从堆栈里揪出具体哪一行代码要改
第一步:复制完整报错日志(含所有at开头的堆栈行),粘贴前加一句【你是一名有3年Android开发经验的故障排查助手】。
第二步:在日志下方空一行,写明任务:“请严格按以下顺序输出:①错误根源定位(精确到类名+方法名+行号);②直接触发条件(哪一行因什么值为null导致崩溃);③上游数据来源(该值由哪个方法或配置传入)”。
第三步:末尾追加硬性约束:【每条必须以‘执行…’或‘确认…’开头;禁止出现‘可能’‘一般’‘建议’等模糊词;若出现@NonNull注解,必须指出该注解是否被绕过】。这一步不加,Gemini会把UserService.login()第89行写成“某处调用”,你根本没法点进去。
按日志首行自动分路径:看到关键词就跳转对应检查清单
方法一:先定义三组真实现象→根因映射关系(每组占一行):
“java.net.ConnectException: Connection refused → 数据库连接池配置错误 → 检查application.yml中spring.datasource.url端口是否为3306”
“Caused by: com.fasterxml.jackson.databind.JsonMappingException → 前端传参JSON结构变更 → 对比当前接口文档v2.3的requestBody字段列表”
“ERROR c.a.c.n.r.NacosDiscoveryClient → Nacos服务未启动 → 执行curl -I http://localhost:8848/nacos/v1/ns/health”
方法二:在映射关系后紧接指令:“请严格按以下顺序输出:①判断日志首行是否匹配上述任一现象;②若匹配,仅输出对应根因模块名称(如‘数据库连接池配置错误’);③若不匹配,输出‘现象未覆盖,请提供原始日志首行全文’”。【此处必须用①②③圈号,不能用1. 2.】
一句话生成可执行检查项:不解释原理,只告诉你现在该点哪里、输什么
你只需要把报错堆栈中最关键的一行(通常是Caused by那行)单独复制出来,前面加:“你正在帮一个刚接触Java两天的新手排查问题。请把下面这行报错,转换成3条终端或IDE里能立刻执行的检查操作。”
例如输入:“Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference”
输出就是纯动作指令:
①执行grep -n "onLoginSuccess" LoginActivity.java,定位到第127行
使用固定的 Next.js/Tailwind/Prisma 技术栈构建并记录独立 SaaS 项目,仅将 FastAPI 用于 Python 工作负载,并遵循严格的架构规范。
②确认该行调用的token字符串是否为空,打断点观察其值
③执行adb logcat | grep "LoginActivity",复现登录流程并捕获实时日志
这三步每条都控制在42字±3字,没有术语缩写,不带任何解释性文字。
结构化提交日志:让Gemini一眼分清哪是错误、哪是上下文、哪是你的目标
在Gemini对话框中,按顺序粘贴以下内容:
【来源】用户中心服务-测试环境-Java 17-Spring Boot 3.2
--- LOG START ---
[ERROR] 2026-06-18 15:22:03.412 ERROR c.e.u.LoginController - 登录失败
Caused by: java.lang.NullPointerException
at com.example.user.LoginController.onLoginSuccess(LoginController.java:127)
at com.example.user.LoginService.handleLogin(LoginService.java:89)
--- LOG END ---
【指令】请按四字段输出:①故障定位;②异常本质;③触发路径;④本地验证动作。每字段单行,不换行,不加标点。

















