Возникла ошибка при реализации программируемого голосового вызова twilio в java android studio - PullRequest
0 голосов
/ 04 февраля 2019

Я реализую программируемый голосовой вызов Twilio в java android studio как описание, которое они дали в своих документах, но сталкивается с некоторой ошибкой при запуске

ниже - ошибка, с которой я сталкиваюсь:

 Exception in thread "main" java.lang.NoSuchFieldError: INSTANCE
        at org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFactory.java:144)
        at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.getDefaultRegistry(PoolingHttpClientConnectionManager.java:109)
        at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:116)
        at com.twilio.http.NetworkHttpClient.<init>(NetworkHttpClient.java:58)
        at com.twilio.http.TwilioRestClient$Builder.build(TwilioRestClient.java:102)
        at com.twilio.Twilio.getRestClient(Twilio.java:122)
        at com.twilio.base.Creator.create(Creator.java:45)
        at com.systema.twilliovoicecalltest.MakePhoneCall.main(MakePhoneCall.java:33)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.intellij.rt.execution.application.AppMainV2.main(AppMainV2.java:131)

я пыталсячтобы исключить библиотеки http, такие как

implementation (group: "com.twilio.sdk", name: "twilio", version: "7.34.1")
{

 exclude group: 'org.apache.httpcomponents' ,module:'httpclient'

exclude group: 'org.apache.httpcomponents' ,module:'httpcore'
    }

implementation (group: "com.sparkjava", name: "spark-core", version: "2.7.1")
{

 exclude group: 'org.apache.httpcomponents' ,module:'httpclient'

 exclude group: 'org.apache.httpcomponents' ,module:'httpcore'
    }

implementation (group: "org.slf4j", name: "slf4j-simple", version: "1.7.21")
{

 exclude group: 'org.apache.httpcomponents' ,module:'httpclient'

 exclude group: 'org.apache.httpcomponents' ,module:'httpcore'
    }

, когда я попробовал вышеуказанное решение, ошибка изменилась:

>Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/ProtocolVersion
    at com.twilio.http.TwilioRestClient$Builder.build(TwilioRestClient.java:102)
    at com.twilio.Twilio.getRestClient(Twilio.java:122)
    at com.twilio.base.Creator.create(Creator.java:45)
    at com.systema.twilliovoicecalltest.MakePhoneCall.main(MakePhoneCall.java:33)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.application.AppMainV2.main(AppMainV2.java:131)
Caused by: java.lang.ClassNotFoundException: org.apache.http.ProtocolVersion
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 9 more

вот мой код Java:

public static void main(String[] args) throws URISyntaxException {

    Twilio.init(ACCOUNT_SID, AUTH_TOKEN);

    String from = "+18572632XXX";
    String to = "+92**********";

    Call call = Call.creator(new PhoneNumber(to), new PhoneNumber(from),
            new URI("http://demo.twilio.com/docs/voice.xml")).create();


    System.out.println(call.getSid());
}

у меня есть все необходимые библиотеки:

>implementation group: "com.twilio.sdk", name: "twilio", version: "7.34.1"</br>

>implementation group: "com.sparkjava", name: "spark-core", version: "2.7.1"</br>

>implementation group: "org.slf4j", name: "slf4j-simple", version: "1.7.21"</br>

Поскольку у меня нет большого опыта в этом, пожалуйста, помогите

1 Ответ

0 голосов
/ 05 февраля 2019

Twilio разработчик евангелист здесь.Как вы заметили, у Android будут проблемы с использованием нашего Java SDK, поскольку одной из его зависимостей является библиотека Apache для HTTP.Что вы хотите сделать, так это использовать Android SDK для совершения звонков.

Вы можете увидеть пример того, как его использовать здесь , а также пройти через быстрый запуск , который проведет вас через весь процесс.

В вашем примере вы используете Java SDK, который создает проблему безопасности в вашем приложении, поскольку теперь он жестко кодирует учетные данные вашей учетной записив ваш окончательный APK.Я объясняю, почему это не очень хорошая идея в этом сообщении в блоге .

Надеюсь, это поможет вам.

...