往工程中導入open-api-sdk-2.0.jar,按照例子寫一個商品搜索:
final JdClient client = new DefaultJdClient(SERVER_URL, "", APP_KEY, APP_SECRET);
final WareSearchRequest request = new WareSearchRequest();
request.setKey("newbalance");
request.setTimestamp(getTimesTamp());
new Thread(new Runnable() {
@Override
public void run() {
try {
WareSearchResponse response = client.execute(request);
Logger.t(TAG).i(response.toString());
} catch (JdException e) {
e.printStackTrace();
}
}
}).start();
運行上面的代碼發現,出錯了??什麼鬼。。。
看到以上錯誤,明白了,沒有找到org.codehaus.jackson.map.ObjectMapper這個類,但是,爲什麼京東開放平臺上沒有提出要依賴這個類的??真的是,五星差評。
既然我們已經找到了錯誤所在,剩下的就是解決問題了,進入工程的Project Structure(Android Studio平臺)找到相應的庫。
這時候,我們需要依賴庫:org.codehaus.jackson:jackson-mapper-asl:1.9.13 。
當我們導入這個庫之後,編譯,run起來,我靠,還是有錯誤:
有衝突,解決以上問題也很簡單,只要在app的build.gradle中插入下面這段代碼就可以了:
// 註釋衝突
packagingOptions {
exclude 'META-INF/ASL2.0'
exclude 'META-INF/LICENSE'
}
LICENSE有衝突,在這裏加入exclude 'META-INF/LICENSE',因爲只加入這個段代碼再進行編譯,發現出現類似錯誤,這次是ASL2.0,所以,需要插入以上兩行代碼,如下:
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.0"
defaultConfig {
applicationId "com.paxsz.ossdemo"
minSdkVersion 19
targetSdkVersion 25
versionCode 1
versionName "1.0"
multiDexEnabled true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
}
}
sourceSets {
main {
java.srcDirs = ['src/main/java', 'src/main/java-gen']
jniLibs.srcDirs = ['libs']
}
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
// 註釋衝突
packagingOptions {
exclude 'META-INF/ASL2.0'
exclude 'META-INF/LICENSE'
}
}
repositories {
flatDir {
dirs file('libs')
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile files('libs/open-api-sdk-2.0.jar')
compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.13'
compile 'org.codehaus.jackson:jackson-core-asl:1.9.13'
}
加入之後再重新運行,問題應該就解決了。