我正在尝试使用Twilio中的库来发送短信,但我在将它们导入我的项目时遇到问题。我正在关注此tutorial,他们说创建pom.xml
并提出以下内容。
<dependency>
<groupId>com.twilio.sdk</groupId>
<artifactId>twilio-java-sdk</artifactId>
<version>3.4.5</version>
</dependency>
我发现了这个question所以我按照了答案并将依赖项转换为以下内容并将其添加到build.gradle
compile 'com.twilio.sdk:twilio-java-sdk:3.4.5'
编译后我得到以下错误,我不知道如何修复它们。
然后我决定使用他们的预制jar,所以我将它们添加到我的依赖项中。构建的错误消失但是当我尝试按照上面的教程发送文本消息时,我在尝试发送时收到以下错误。
3-01 21:23:08.056 12507-12507/com.example.ammar.theguardian E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NoSuchMethodError: org.apache.http.conn.scheme.Scheme.<init>
at org.apache.http.impl.conn.SchemeRegistryFactory.createDefault(SchemeRegistryFactory.java:47)
at org.apache.http.impl.conn.PoolingClientConnectionManager.<init>(PoolingClientConnectionManager.java:93)
at com.twilio.sdk.TwilioClient.<init>(TwilioClient.java:140)
at com.twilio.sdk.TwilioRestClient.<init>(TwilioRestClient.java:19)
at com.example.ammar.theguardian.guardianService.sendTextMessage(guardianService.java:233)
at com.example.ammar.theguardian.guardianService.onCreate(guardianService.java:53)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:2264)
at android.app.ActivityThread.access$1600(ActivityThread.java:127)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1212)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4511)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:976)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:743)
at dalvik.system.NativeStart.main(Native Method)
如何解决此问题?谢谢!
更新:build.gradle文件内容按照评论中的要求在此处发布
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.example.ammar.theguardian"
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.twilio.sdk:twilio-java-sdk:3.4.5'
compile 'org.apache.httpcomponents:httpclient:4.1.2'
}
答案 0 :(得分:0)
Twilio Evangelist在这里。
这不是twilio本身的问题,而是因为您正在尝试将Java库与Android项目一起使用。
我知道Android也是Java,所以理论上它应该可以工作: - )
嗯,在发出HTTP请求时,情况并非如此,因为Android以稍微不同的方式发出HTTP请求,并且
org.apache.httpcomponents
不仅仅是工作。我的建议是尝试使用H ttpClient for Android,这是Android的org.apache.httpcomponents
端口。
它应该具有所有相同的命名空间,并将其添加到gradle.build应该是添加以下内容:
dependencies {
compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'
}
我自己没有使用它,但是会说这是一个好的开始,并且可能会解决你的问题。
让我知道。