在Android Studio中打包APK时重复文件?

时间:2015-03-02 03:30:39

标签: android maven twilio

我正在尝试使用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' 

编译后我得到以下错误,我不知道如何修复它们。

enter image description here

enter image description here

然后我决定使用他们的预制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'
}

1 个答案:

答案 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'
}

我自己没有使用它,但是会说这是一个好的开始,并且可能会解决你的问题。

让我知道。