我正在使用koush/ion庫從URL獲取JSON,問題是當我嘗試運行我的應用程序時它拋出這個嘗試使用koush/ion獲取JSON並獲取DexException
Error:Execution failed for task ':app:dexDebug'.
com.android.ide.common.internal.LoggedErrorException: Failed to run command:
/Applications/Android Studio.app/sdk/build-tools/android-4.4W/dx --dex --num-threads=4 --output
/Users/Ger/Desktop/Slide/app/build/intermediates/dex/debug
/Users/Ger/Desktop/Slide/app/build/intermediates/classes/debug
/Users/Ger/Desktop/Slide/app/build/intermediates/dependency-cache/debug
/Users/Ger/Desktop/Slide/app/build/intermediates/pre-dexed/debug/androidasync-1.3.8-a258b3b9f5350460cf9a1a47d3844ac30e9c5eba.jar
/Users/Ger/Desktop/Slide/app/build/intermediates/pre-dexed/debug/gson-2.2-3174cdb2bcc21df781020dd287f6d8f9b30fbcf4.jar
/Users/Ger/Desktop/Slide/app/build/intermediates/pre-dexed/debug/gson-2.3-2c927fa37b669aaa0ff9991dd7c990e2d88a7487.jar
/Users/Ger/Desktop/Slide/app/build/intermediates/pre-dexed/debug/ion-1.3.8-df2772cd07adc55daba28b3d0ce1374cf5a4edd5.jar
/Users/Ger/Desktop/Slide/app/build/intermediates/pre-dexed/debug/support-v4-18.0.0-2484d88715cbcdaf306e7f8449d6546e84c1520d.jar
Error Code:
2
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lcom/google/gson/JsonSerializer;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
at com.android.dx.command.dexer.Main.run(Main.java:230)
at com.android.dx.command.dexer.Main.main(Main.java:199)
at com.android.dx.command.Main.main(Main.java:103)
這是我的代碼:
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.koushikdutta.async.future.FutureCallback;
import com.koushikdutta.ion.Ion;
public class NuevosEpisodios extends Activity {
String resultado = "A";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.temporada);
TextView tv = (TextView) findViewById(R.id.descripcion_temp);
Ion.with(NuevosEpisodios.this)
.load("http://example.com/thing.json")
.asJsonObject()
.setCallback(new FutureCallback<JsonObject>() {
@Override
public void onCompleted(Exception e, JsonObject result) {
// do stuff with the result or error
Gson gson = new Gson();
resultado = gson.toJson(result);
}
});
tv.setText(resultado);
}
}
我見過很多回答這個問題,但我沒有一個能用的,請給我一個手 我有gson- 2.2和我的lib文件夾中的koush/ion jar,它們都編譯在我的build gradle中:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:support-v4:18.0.+'
compile 'com.koushikdutta.ion:ion:1.+'
compile files('libs/gson-2.2.jar')
}
謝謝先進!
你好,我不知道該怎麼做,所以我使用了一個asynctask類,但感謝提問 – user3739503 2014-09-14 19:46:47