Arduino 1.8.16上传ESP32程序报java.lang.NullPointerException如何解决
解决方案
以下为对应该类上传报错的可行修复步骤,按优先级依次尝试:
- 降级ESP32开发板包到兼容版本
Arduino IDE 1.8.16与2.0.6及以上版本的ESP32开发板包存在兼容性问题,是该类java.lang.NullPointerException报错最常见的诱因。操作路径:打开IDE>工具>开发板>开发板管理器,搜索esp32,卸载当前安装的高版本包,选择2.0.4或2.0.5版本重新安装,重启IDE后再尝试上传。 - 关闭「使用编程器上传」选项
若误勾选了工具菜单下的使用编程器上传项,IDE会绕过串口上传逻辑调用编程器上传链路,未连接对应编程器时就会触发该空指针报错,确认该项处于未勾选状态即可。 - 清理IDE残留配置后重装开发板包
标准/便携安装不会自动清理旧的配置缓存,会导致兼容性问题残留。操作步骤:关闭IDE,删除对应系统路径下的Arduino15配置文件夹:- Windows:
C:\Users\用户名\AppData\Local\Arduino15 - macOS:
~/Library/Arduino15 - Linux:
~/.arduino15
清理完成后重启IDE,重新安装适配版本的ESP32开发板包即可。
- Windows:
- 手动触发开发板进入下载模式
部分兼容ESP32开发板的自动复位电路逻辑和Arduino IDE 1.8.x的触发逻辑不兼容,上传前按住开发板上的BOOT键,点击上传按钮直到IDE控制台出现上传进度提示后再松开按键即可。
对应报错信息如下:
java.lang.NullPointerException at cc.arduino.packages.uploaders.SerialUploader.uploadUsingProgrammer(SerialUploader.java:295) at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:90) at cc.arduino.UploaderUtils.upload(UploaderUtils.java:77) at processing.app.SketchController.upload(SketchController.java:732) at processing.app.SketchController.exportApplet(SketchController.java:703) at processing.app.Editor$UploadHandler.run(Editor.java:2061) at java.lang.Thread.run(Thread.java:748)
内容的提问来源于stack exchange,提问作者Massimo Manca
相关产品推荐
相关产品推荐

