我正在尝试使用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或番石榴)工作正常。 我怎么解决这个问题?
我花了一些时间弄清楚,但是终于搞定了。 我一直在研究一个parsingKSoap的WSDLparsing器,并最终得到这个工作只是通过Gradle的importksoap。 无论如何,这里是你如何做到这一点。
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插件:'android'。 希望这有助于并节省一些人的时间。
我正在使用@ amitav13的解决scheme,但存储库的URL已经改变:
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'
这对我有用。
下面是Sambuild议的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。
repositories { maven { url 'https://oss.sonatype.org/content/repositories/ksoap2-android-releases/' } }
和里面的依赖
compile 'com.google.code.ksoap2-android:ksoap2-android:3.6.1'
我处于同样的情况。 我放弃了从mavencentral那里添加那个jar子。
我添加了原始的jar作为一个lib。
从这个URL下载最新的(或者任何版本的)ksoap2-android
在build.gradle中调用它,见下面
这里是代码:
dependencies { compile files('libs/ksoap2-android.jar') }
我希望这会有所帮助。
最后在你的build.gradle:
dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') }
这对我来说工作得很好。