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

使用Twilio API 9.1.0发送短信遇java.lang.NoSuchFieldError错误的解决方法

Twilio API 9.1.0 发送短信触发NoSuchFieldError异常的解决办法

使用Twilio API(9.1.0版本)发送短信时,触发以下致命异常:

E/AndroidRuntime: FATAL EXCEPTION: Thread-7
Process: au.com.thermalog, PID: 2004
java.lang.NoSuchFieldError: No static field INSTANCE of type Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; in class Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; or its superclasses (declaration of 'org.apache.http.conn.ssl.AllowAllHostnameVerifier' appears in /system/framework/framework.jar!classes4.dex)
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFactory.java:151)
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.getSocketFactory(SSLConnectionSocketFactory.java:194)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.getDefaultRegistry(PoolingHttpClientConnectionManager.java:116)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:123)
    at com.twilio.http.NetworkHttpClient.<init>(NetworkHttpClient.java:70)
    at com.twilio.http.NetworkHttpClient.<init>(NetworkHttpClient.java:45)
    at com.twilio.http.NetworkHttpClient.<init>(NetworkHttpClient.java:36)
    at com.twilio.http.TwilioRestClient$Builder.build(TwilioRestClient.java:143)
    at com.twilio.Twilio.buildRestClient(Twilio.java:202)
    at com.twilio.Twilio.getRestClient(Twilio.java:174)
    at com.twilio.base.Creator.create(Creator.java:40)
    at au.com.thermalog.service.SMSService.sendSMS(SMSService.java:41)
    at au.com.thermalog.service.EmailService.lambda$sendEmail$0$au-com-thermalog-service-EmailService(EmailService.java:121)
    at au.com.thermalog.service.EmailService$$ExternalSyntheticLambda0.run(Unknown Source:4)
    at java.lang.Thread.run(Thread.java:923)

原使用代码:

Twilio.init();
Message message = Message.creator(
                new PhoneNumber("+234353"),
                "want to use Alphanumeric Id",
                "Your message")
        .create();

解决方案

改用OkHttpClient直接调用Twilio API,实现代码如下:

protected void sendSMS(String to, String sms) {
        OkHttpClient client = new OkHttpClient();
        String url = "https://api.twilio.com/2010-04-01/Accounts/ACC_SID/SMS/Messages";
    String base64EncodedCredentials = "Basic " + Base64.encodeToString((ACC_SID+":"+AUTH_TOKEN).getBytes(), Base64.NO_WRAP);

    RequestBody body = new FormBody.Builder()
            .add("From","MG4c4e29ab......") // 此处填写你的字母数字ID的HexCode
            .add("To", to)
            .add("Body", sms)
            .build();

    Request request = new Request.Builder()
            .url(url)
            .post(body)
            .header("Authorization", base64EncodedCredentials)
            .build();
    try {
        Response response = client.newCall(request).execute();
        Log.d(TAG, "sendSms: " + response.body().string());
    } catch (IOException e) {
        e.printStackTrace();
        Log.d(TAG, "sendSms: " + e.getMessage());
    }

}

同时需添加以下依赖:

implementation 'com.squareup.okhttp3:okhttp:4.9.0'

若需保障账户信息安全,可查阅官方文档获取帮助。


内容的提问来源于stack exchange,提问作者Shehzad Raheem

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 05:36:06