我正在尝试使用Gradle在我的Android项目中使用kSOAP。
这是我的项目的build.gradle文件:
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'
}
库似乎包含在项目中并且编译可以工作但是当我尝试导入类(即SoapObject)时,似乎命名空间甚至不存在。有趣的是,其他图书馆(如ACRA或Guava)工作正常。我该如何解决这个问题?
答案 0 :(得分:45)
我正在使用@ amitav13的解决方案,但存储库的网址已更改:
repositories {
maven { url 'https://oss.sonatype.org/content/repositories/ksoap2-android-releases' }
}
截至目前的当前版本是3.6.0
compile 'com.google.code.ksoap2-android:ksoap2-android:3.6.0'
这对我有用。
答案 1 :(得分:31)
这是Sam建议的build.gradle的最小版本,对我有用:
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'
}
请注意,这是应用程序的build.gradle,我没有对项目build.gradle进行任何修改。
答案 2 :(得分:30)
这也让我有点想弄清楚,但我终于让它运转了。我一直在研究解析KSoap的WSDL解析器,最后只通过导入ksoap来解决Gradle问题。无论如何你都是这样做的。
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'
}
当然我的是一个服务库,所以你可能想要使用apply plugin:'android'。 希望这有助于并节省一些时间。
答案 3 :(得分:12)
repositories {
maven { url 'https://oss.sonatype.org/content/repositories/ksoap2-android-releases/' }
}
和内部依赖
compile 'com.google.code.ksoap2-android:ksoap2-android:3.6.1'
答案 4 :(得分:3)
我遇到了同样的情况。我放弃了从mavencentral添加那个罐子。
我将原始jar添加为lib。
以下是代码:
dependencies {
compile files('libs/ksoap2-android.jar')
}
我希望它会有所帮助。
答案 5 :(得分:1)
更简单的解决方案是从http://www.bvbcode.com/code/ed5zc936-1814251-down下载.jar并将此.jar文件添加到libs文件夹中。
最后在你的build.gradle:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
}
这对我来说很好。
答案 6 :(得分:0)
这些答案很老,没有一个对我有用。这是我使用Android Studio 3.1.4和ksoap 3.6.4的解决方案
android gradle:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.4'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
repositories {
maven { url 'https://oss.sonatype.org/content/repositories/ksoap2-android-releases/' }
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
app gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.myapp.aspservicetest"
minSdkVersion 24
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
repositories {
maven { url 'https://oss.sonatype.org/content/repositories/ksoap2-android-releases' }
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.google.code.ksoap2-android:ksoap2-android:3.6.4'
}
答案 7 :(得分:0)
我知道使用jar文件已经有了答案。我想添加一个带有最新更新的链接:
Download ksoap2-android-assembly-3.6.4-jar-with-dependencies.jar并将其添加到文件夹库中。
在build.grade中:
android {
...
configurations {
all {
exclude group: 'com.squareup.okhttp3', module: 'okhttp'
}
}
}
...
dependencies {
...
implementation fileTree(include: '*.jar', dir: 'libs')
...
}