web-dev-qa-db-fra.com

Ajout de la dépendance kSOAP au projet Gradle

J'essaie de faire fonctionner kSOAP dans mon projet Android avec Gradle.

Voici le fichier build.gradle de mon projet:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'Android'

repositories {
    mavenCentral()

    maven {
        url 'http://ksoap2-Android.googlecode.com/svn/m2-repo'
    }
}

Android {
    compileSdkVersion 18
    buildToolsVersion "18.0.1"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 18
    }
}

dependencies {
    compile 'com.Android.support:support-v4:18.0.0'
    compile 'ch.acra:acra:4.5.0'
    compile 'com.google.guava:guava:12.0'
    compile 'com.google.code.ksoap2-Android:ksoap2-Android:3.0.0'
}

La bibliothèque semble être incluse dans le projet et la compilation fonctionne, mais lorsque j'essaie d'importer une classe (par exemple, SoapObject), il semble que l'espace de noms n'existe même pas. Ce qui est amusant, c’est que les autres bibliothèques (telles que ACRA ou Guava) fonctionnent bien. Comment puis-je résoudre ce problème?

24
Axel GeNuS

Cela m'a pris un peu de temps à comprendre aussi, mais j'ai finalement réussi à le faire fonctionner. J'ai travaillé sur un analyseur WSDL qui analyse KSoap et je n'ai finalement réussi à le faire que pour combattre via Gradle avec l'importation de ksoap. À tout prix, voici comment vous le faites.

apply plugin: 'Android-library'

buildscript {
    repositories {
        mavenCentral()
        maven { url 'https://oss.sonatype.org/content/repositories/ksoap2-Android-releases/' }
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:0.8.+'
        classpath 'com.google.code.ksoap2-Android:ksoap2-Android:3.1.1'
    }
}

repositories {
    maven { url 'https://oss.sonatype.org/content/repositories/ksoap2-Android-releases/' }
}


Android {
    compileSdkVersion 19
    buildToolsVersion "19.0.1"

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    release {
        runProguard false
        proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.txt'
    }
}

dependencies {

    compile 'com.google.code.ksoap2-Android:ksoap2-Android:3.1.1'

}

Bien sûr, la mienne est une bibliothèque de services, vous pouvez donc utiliser le plugin apply: 'Android' ..____. J'espère que cela aidera et fera gagner du temps à quelqu'un.

29
Sam

J'utilise la solution de @ amitav13 mais l'URL du référentiel a changé: 

repositories {
        maven { url 'https://oss.sonatype.org/content/repositories/ksoap2-Android-releases' }
    }

La version actuelle est la version 3.6.0

compile 'com.google.code.ksoap2-Android:ksoap2-Android:3.6.0'

Cela a fonctionné pour moi.

45
Jens

Voici une version plus minimale du build.gradle proposé par Sam qui fonctionne pour moi:

apply plugin: 'com.Android.application'

Android {
compileSdkVersion 21
buildToolsVersion "20.0.0"

defaultConfig {
    applicationId "com.example.test"
    minSdkVersion 15
    targetSdkVersion 21
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        runProguard false
        proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
    }
    repositories {
        maven { url 'https://oss.sonatype.org/content/repositories/ksoap2-Android-releases' }
    }
}
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.code.ksoap2-Android:ksoap2-Android:3.6.2'
}

Notez qu'il s'agit de build.gradle de l'application. Je n'ai apporté aucune modification au projet build.gradle.

31
amitav13
repositories {
    maven { url 'https://oss.sonatype.org/content/repositories/ksoap2-Android-releases/' }
}

et dans les dépendances

compile 'com.google.code.ksoap2-Android:ksoap2-Android:3.6.1'
12
Naman Vaishnav

J'étais dans la même situation. Et j'ai renoncé à ajouter ce pot de mavencentral.

J'ai ajouté le pot brut sous forme de lib.

  1. Téléchargez la dernière version (ou autre version) de ksoap2-Android depuis cette url
  2. Appelez-le dans le build.gradle, voir ci-dessous

Voici le code:

dependencies {
   compile files('libs/ksoap2-Android.jar')
}

J'espère que cela aidera.

3
SH.

Une solution plus simple consiste à télécharger le fichier .jar à partir de http://www.bvbcode.com/code/ed5zc936-1814251-down et à ajouter ce fichier .jar au dossier libs.

Enfin dans votre build.gradle: 

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs') 
}

CA marchait bien pour moi.

1
buzzingsilently