You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java调用Twilio发送短信时Gradle任务':StockAlertClass:SMS.main()'执行失败

报错原因

核心本质是你的Java程序运行时抛出了未捕获的异常,导致进程非正常退出,返回状态码1,Gradle因此触发任务执行失败报错。具体高频诱因如下:

  • 环境变量读取失败:代码中ACCOUNT_SID、AUTH_TOKEN通过System.getenv()读取,若程序运行的上下文(IDE运行配置/命令行执行环境)未配置对应环境变量,两个值为null,调用Twilio.init()时直接触发空指针异常。
  • 依赖配置冲突:build.gradle中重复声明了twilio的implementation和runtimeOnly依赖,可能引发类加载冲突;同时slf4j版本过低,可能和Twilio的日志依赖不兼容。
  • 号码格式或权限错误:收/发信号码未带完整国际区号前缀,或Twilio试用账号未提前验证收信号码,调用短信发送接口时触发API权限错误。
解决方案
  1. 排查环境变量配置
    如果是IDE运行,在对应运行配置的「环境变量」栏添加ACCOUNT_SID、AUTH_TOKEN的实际键值对;如果是命令行运行,执行命令前先导出环境变量:
export ACCOUNT_SID=你的Twilio账户SID
export AUTH_TOKEN=你的Twilio账户令牌

测试阶段可以临时把两个常量硬编码为实际值,确认是不是环境变量读取问题,测试完成后及时改回避免敏感信息泄露。

  1. 修正build.gradle依赖配置
    删除重复的Twilio依赖,升级slf4j到稳定兼容版本,修改后的依赖块参考:
dependencies {
    implementation 'org.slf4j:slf4j-simple:1.7.36'
    implementation 'com.sparkjava:spark-core:2.9.4'
    implementation group: "com.twilio.sdk", name: "twilio", version: "8.21.0"
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
}

修改后执行./gradlew clean build清空旧的构建缓存重新编译。

  1. 校验号码权限与格式
  • 收信号码和Twilio分配的发信号码都要完整带+前缀的国际区号,比如中国大陆号码格式为+8613xxxxxxxxx
  • Twilio试用账号必须先在控制台将收信号码加入验证列表,才能成功接收测试短信
  1. 增加异常捕获定位具体问题
    修改SMS类的Message()方法,添加异常捕获打印具体错误栈:
public static void Message() {
    try {
        if (ACCOUNT_SID == null || AUTH_TOKEN == null) {
            System.out.println("环境变量读取失败,请检查ACCOUNT_SID和AUTH_TOKEN配置");
            return;
        }
        Twilio.init(ACCOUNT_SID, AUTH_TOKEN);
        Message message = Message.creator(new PhoneNumber("+完整收信号码"),
                new PhoneNumber("+完整Twilio发信号码"),
                "Test ").create();
        System.out.println(message.getSid());
    } catch (Exception e) {
        e.printStackTrace();
    }
}
  1. 开启debug日志获取完整信息
    执行./gradlew run --debug运行程序,查看完整运行日志定位具体异常原因。

内容的提问来源于stack exchange,提问作者Mark Mingo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 07:39:03