# 常见问题
>[danger] 当前文档为 `1.x` 版本的文档。simple-robot 1.x 版本已经被认定为过时且停止维护,请前往 `2.x` 版本文档:https://www.yuque.com/simpler-robot/simpler-robot-doc
>[success] 以下所有的问题汇总中,Java端所进行的数据交互方均假定为`酷Q`应用。(特殊情况与问题除外)
>[warning] 在尝试解决问题之前,你首先应当开启Java端的Debug日志(使用配置类的**setLogLevel**方法) 、 插件端的Debug日志(如果有的话) 、酷Q端的Debug日志(日志窗口右下角的下拉列表中选择)以获取更详细的日志信息。
*****
### 目录
[TOC]
# 前言
此章节收集并记录常见的各种问题并提供比较通用的解决方案。假如出现了什么问题,不如先来这里看看吧
如果这里没有什么好的解决方案,且出现的问题与框架本身关联不大,我推荐你**优先**使用以下方案寻找解决方法:
* [Java上的问题](https://www.runoob.com/java/java-tutorial.html)
* [intellij idea上的问题](https://www.runoob.com/w3cnote/intellij-idea-usage.html)
* [maven上的问题](https://www.runoob.com/maven/maven-tutorial.html)
* [问题解决方法汇总(国内)](https://www.baidu.com/)
* [问题解决方法汇总(国外)](https://www.google.com/)
* [看不懂外语就看这里](https://translate.google.cn/)
* [大型问题汇总平台(国内)](https://www.csdn.net/)
<br><br>
*****
<br>
# 问题汇总
## 0.我不会Java怎么办?
。。。。。你可以考虑放弃自主开发,前去社区寻找现成的插件应用,或者委托他人进行开发。
当然,我本人也接收有偿定制,具体怎么收费,你可以考虑去文档的 `捐助` 章节,前往我的 [爱发电](https://afdian.net/@ForteScarlet) 主页进行参考。
不过讲道理一般都看到这里了谁还能不会个java呢。
<br><br>
*****
<br>
## 1\. 我**不会maven**怎么办?
学啊!此框架所依赖的库还是比较多的,所以我并不推荐使用jar导入的方式构建项目。
而maven的学习成本并不高,简单搜一下帖子就能学会。
<br><br>
*****
<br>
## 2\. maven**依赖下载不了**怎么办?
* 尝试使用优质网络或者使用VPN
* 尝试为Maven添加一些国内镜像地址,例如阿里镜像
* 尝试删除Maven仓库中对应路径下,扩展名为`.lastUpdated`的文件并重新下载
* 选择使用jar包方式架构项目。(并不推荐)
<br><br>
*****
<br>
## 3\. 使用**eclipse**出现各种各样的问题
首先,我推荐你使用 [**intellij idea**](https://www.baidu.com/link?url=OlfDs8REnRFXRDF0Twn5S1dr1RnbJBiLI6FeQSMEW1Q_IPpKPX9JMqdaxuVScdgN&wd=&eqid=e5f71353000278c0000000025e4a58df) 而不是eclipse。其次,有关IDE的一切问题均不包含在框架所出现的问题之内,我只能酌情为你加油,祝你早日解决问题,你可以尝试使用本章节**顶部**的友情链接。
<br><br>
*****
<br>
## 4\. LEMOC插件打开设置后 **卡了/没有任何输入框/无法修改/崩溃** 怎么办?
LEMOC插件最后更新时间是 *2016/12/12*, 距离现在已经非常久远,酷Q一直在持续更新,而LEMOC的作者回归的可能性非常渺茫,所以当LEMOC插件自身出现**任何问题**都没有什么有效的解决方案。
当插件本身运作正常,但是设置出现问题的时候,你可以尝试:
* 切换酷Q启动的兼容性, 分别使用win10、win7、xp等各种可能启动试试
* 忽略插件的设置,使用其提供的默认配置进行使用(其默认值为**仅允许本地连接**、端口**25303**)
<br><br>
*****
<br>
## 5\. 我 **接收不到监听/发送不了消息** 怎么办?( **非docker** 环境下 )
首先你要先检查:
### 5.1. 能发送消息但是**不能监听消息**
能发送消息,代表`java -> 酷Q`的通讯良好,但是`酷Q -> Java`的通讯不通。
一般发生在使用HTTP协议进行交互的插件上。说明你在`酷Q - 对应插件的设置`中对于Java接收消息的地址没有填写正确。
首先查看你的配置,其次检查监听消息的上报地址与Java的消息接收地址是否相同。
例如配置如下:
```properties
javaPort=2233
serverPath=/coolq
```
假设此时酷Q与Java同处在一台windows电脑上,则`酷Q插件`端所需要填写的上报地址为:
```
http://127.0.0.1:2233/coolq
```
很多人会忘记:
* 填写端口
* 填写正确的请求路径
<br>
### 5.2. 能监听消息但是**不能发送消息**
能监听消息,但是`酷Q -> Java`的通讯良好,代表`java -> 酷Q`的通讯不通。
与上述的`5.1`情况正好相反。
此时检查:
* Java程序的配置中的`服务器端口(serverPort)`与`酷Q插件`上所设置的端口是否一致。
* Java程序的配置中的`IP`是否指向`酷Q`所在IP环境且此IP可用。
### 5.3. **都不能**
都不能的情况下基本上就是说链接失败了,则首先将上述`5.1`、`5.2`的解决方案都试一遍,其次:
* 查看是否存在防火墙阻拦
* 检查配置信息是否正确
* 使用PostMan或其他测试软件进行接口调试
* 查看 Java/酷Q 控制台上所出现的日志信息。(优先Debug级信息)
* 尝试重启你的 IDE编辑器/服务器/电脑/酷Q/网络环境等
<br><br>
*****
<br>
## 6\. 我 **接收不到监听/发送不了消息** 怎么办?( **docker** 环境下 )
待续
<br><br>
*****
<br>
## 7\. 项目启动出现**ClassNotFoundException错误**,但是我明明**下载了Jar包**
我一个盲猜你是直接从maven网址上的download jar file下载的jar包。使用此方法下载jar包是不会下载其所需要的依赖文件的,所以你可以尝试:
* 使用maven构建项目
* 查看文档的`核心-jar包与依赖`章节
* 换个框架用
<br><br>
*****
<br>
## 8\. 我发送不了**群消息**怎么办?
首先,你需要检查一下:
### 8.1. 私信消息能发送
那你大概率是机器人的消息被腾讯屏蔽了。此时你可以尝试:
* 手动登录此机器人账号,聊个天
* 增加机器人的等级
* 增加机器人的活跃度
* 给机器人充个QQ会员(视经济条件考虑,破产了与我无关)
### 8.2. 私信也不行
那你大概率是无法与酷Q端动态交互,参考 `问题#5`
<br><br>
*****
<br>
## 9\. 为什么我无法 **发送图片/发送语音/发送视频/发送文件/发(抢)红包/监听撤回/.....**(略) ?
这些功能一般由应用方决定是否开放、是否收费、如何使用。
以酷Q为例:
首先,发送图片、语音等这类敏感性较低的功能酷Q提供了使用接口,其表现为[CQ码](https://docs.cqp.im/manual/cqcode/)的形式(框架内部有针对CQ码的封装与工具),且需要[付费](https://cqp.me/user/)才能够使用。
其次,例如 发/抢红包、监听撤回、文件上传/下载等敏感度较高的功能,酷Q便不提供且明确表示不会提供。(例如 发/抢红包)
每个机器人应用有其各自的规则与底线,假如你想要有一个所有功能都存在的应用,可以考虑自行抓包研究或者寻找付费定制者。
<br><br>
*****
<br>
## 10\. 为什么我整合了Springboot之后,监听函数出现**无法自动注入**的情况?
想要正确整合Springboot与其依赖注入功能,首先你要确保:
①. 你已经将Springboot的依赖注入功能 **整合** 进了框架内部。至于怎么整合,可以参考[配置文件](./配置文件.md)中的DependGetter、[依赖注入](./依赖注入.md)中的自定义依赖注入与Springboot的beanFactory。且群内有demo示例项目可供参考。
②. 你在注入的时候使用了 **正确的注解**。假如类上使用了Springboot的`@Service`或者`@Component`,则字段使用`@Autowired`,假如类上使用的是`@Beans`,则字段使用`@Depend`
③. 确保你加入的字段 **存在于** 依赖仓库中。如果不在仓库,那么不管你怎么获取都肯定不存在的。根据你所使用的注解来去验证其是否存在于Springboot的扫描范围与bean工厂中或者simple-robot的扫描范围中。
④. 尽可能 **不要使用 `devtools`工具** (一个可以热部署的工具)。`devtools`虽然可以实现热部署,但是其实现原理涉及到类加载器,此举会导致`simple-robot`所扫描的类、真正的监听器类、Springboot的BeanFactory中的类之间出现各种各样的偏差而导致无法获取到真正你想要的类,继而导致无法注入或者结果为null。总而言之,热部署并不是那么方便的东西,你完全可以选择暂时放弃它。更何况其本身也不推荐在生产环境使用。既然只是用来测试,多启动一次又何妨?
## 待续...
- 前言
- 简单介绍
- 我该如何阅读文档
- 视频教程
- 安装与使用
- 开源协议
- 免责&捐助
- 注意事项
- 版本命名规则简介
- 主要功能版本历史
- 功能指引
- 通用API与功能
- 国际化语言
- 异常
- 消息监听
- @Listen
- @OnListen模板
- @Filter
- 消息参数截取
- @Spare
- @Constr
- @Ignore
- @ListenBreak
- @ListenBreakPlugin
- @ListenBody
- 监听响应
- 成功判定与返回值
- 监听上下文
- 动态参数
- 监听消息API
- 异步监听 @Async
- 限流监听 @Limit
- 自定义Http送信器
- 枚举与类型
- 送信器
- SENDER
- SETTER
- GETTER
- 返回值
- 其他位置
- 日志与日志拦截
- 异常处理
- 依赖注入
- 自定义依赖获取
- 批量依赖载入
- 注意事项
- 常量
- 定时任务
- 自定义过滤
- 拦截器
- 拦截器总定义
- 上下文对象总定义
- 监听消息拦截
- 送信器拦截
- 监听函数拦截
- CAT码
- CQ码
- CQCode
- CQ码工具类
- CQ扩展工具类
- AppendList拼接链
- 高级内容
- 阻断机制
- 截断机制
- 自定义枚举类型
- 枚举工厂
- byName注解
- 自定义注解
- 配置
- 文件配置
- 注解配置
- 参数配置
- 多配置
- 多账号
- 自定义账号管理器
- 小心!
- 核心版本与组件如何升级核心
- 核心版本迭代指南
- 核心
- 更新日志
- jar包与依赖
- 监听消息类结构图
- 快速启动
- 模组与扩展
- 模组开发
- 现有模组
- 通用模组-延时任务
- 通用模组-CQ码工具
- 转义器
- CQ码操作工具类
- CQ码模板-CodeTemplate
- CQ码载体-KQCode
- CQ码构建器
- MQ码工具类
- 通用模组-redis-bot管理器
- 通用模组-Debugger
- Debugger-common模块
- Debugger-server模块
- Debugger-client模块
- 通用模组-钉钉机器人
- 组件-Mirai(JVM)
- 快速开始(1.13+)
- springboot-starter
- 注意事项
- 配置
- 额外的内容
- 快速回复
- 额外监听
- CQ码解析
- 组件-酷Q(QQ)-CQ HTTP API(基本失效)
- 快速开始(推荐)
- 快速开始(1.7.x以下,不推荐)
- 快速开始(Springboot启动器)
- 启动器、启动接口与配置类
- 配置
- 文件配置
- 注意事项
- 更新日志
- 额外的内容
- 自定义额外监听
- CQ送信器
- 元事件
- 监听消息类结构图
- 组件-酷Q(QQ)-JCQ(失效)
- 快速开始
- 更新日志
- 额外的内容
- JCQ日志
- 配置
- 注意事项
- 监听消息类结构图
- 组件-酷Q(QQ)-HTTP TO CQ(失效)
- 快速开始(核心1.7.x及以下)
- 启动器、启动接口与配置类
- 配置
- 文件配置
- 注意事项
- 更新日志
- 监听消息类结构图
- 组件-酷Q(QQ)-LEMOC (失效)
- 快速开始(核心1.7.x及以下)
- 配置
- 注意事项
- 更新日志
- 监听消息类结构图
- Springboot快速启动器
- 常见问题汇总
- BUG反馈
- 更新计划总览