我在Android Studio中实现Amadeus API时遇到问题 . 这是我的第一个Android应用程序,所以这是我第一次使用AsyncTask等 .
这是我的崩溃报告:
正如你所看到的,这条单一的撞击线突出:
引起:java.lang.NumberFormatException:对于输入字符串:“2017-07-06”
从日志中来看:api正在完成它的工作,但由于输入字符串异常,最终会以某种方式崩溃 .
noman.places.example I / tag:{
“起源”:“FRA”,
“货币”:“欧元”,
“结果”:[{
“目的地”:“LON”,
“departure_date”:“2017-07-06”,
“return_date”:“2017-07-07”,
“价格”:“258.87”,
“航空公司”:“BA”
}]
}
---------崩溃开始06-05 00:46:59.142 18633-18652 / noman.places.example
E / AndroidRuntime:FATAL EXCEPTION:AsyncTask#1进程:noman.places.example,PID:18633 java.lang.RuntimeException:在android.os.AsyncTask $ 3.done执行doInBackground()时发生错误(AsyncTask.java:325 )在java.util.concurrent.FutureTask.run的java.util.concurrent.FutureTask.setException(FutureTask.java:223)的java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)中(FutureTask.java: 242)在android.os.AsyncTask $ SerialExecutor $ 1.run(AsyncTask.java:243)java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)at java.util.concurrent.ThreadPoolExecutor $ Worker.run( ThreadPoolExecutor.java:607)at java.lang.Thread.run(Thread.java:761)引起:java.lang.NumberFormatException:对于输入字符串:java.lang.Long.parseLong中的“2017-07-06”( Long.java:443)at java.lang.Long.parseLong(Long.java:485)at com.google.gson.JsonPrimitive.getAsLong(JsonPrimitive.java:238)at io.swagger.client.JsonUtil $ 1.deserialize( JsonUtil.java:37)在io.swagger.cl com.google.gson.TreeTypeAdapter.read(TreeTypeAdapter.java:58)中的com.google.gson.internal.bind.ReflectiveTypeAdapterFactory $ 1.read(ReflectiveTypeAdapterFactory.java:)中的ient.JsonUtil $ 1.deserialize(JsonUtil.java:35): 103)com.google.gson.internal.bind.ReflectiveTypeAdapterFactory $ Adapter.read(ReflectiveTypeAdapterFactory.java:196)位于com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:40)的com.google .gson.internal.bind.CollectionTypeAdapterFactory $ Adapter.read(CollectionTypeAdapterFactory.java:81)位于com.google.gson.internal的com.google.gson.internal.bind.CollectionTypeAdapterFactory $ Adapter.read(CollectionTypeAdapterFactory.java:60) .bind.ReflectiveTypeAdapterFactory $ 1.read(ReflectiveTypeAdapterFactory.java:103)at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory $ Adapter.read(ReflectiveTypeAdapterFactory.java:196)at com.google.gson.Gson.fromJson(Gson . java:810)com.google.gson.Gson.fromJson(Gson.java:775)com.google.gs on.Gson.fromJson(Gson.java:724)at io.swagger.client.JsonUtil.deserializeToObject(JsonUtil.java:55)at io.swagger.client.ApiInvoker.deserialize(ApiInvoker.java:256)at io.swagger .client.api.DefaultApi.flightInspirationSearch(DefaultApi.java:1085)at noman.places.example.MapsActivity $ AmadeusTask.doInBackground(MapsActivity.java:144)at noman.places.example.MapsActivity $ AmadeusTask.doInBackground(MapsActivity.java) :125)在android.os.AsyncTask $ 2.call(AsyncTask.java:305)at java.util.concurrent.FutureTask.run(FutureTask.java:237)at android.os.AsyncTask $ SerialExecutor $ 1.run(AsyncTask . java:243)java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:607)at java.lang.Thread.run(Thread的.java:761)
这是我对API的实现:
private class AmadeusTask extends AsyncTask<Void, Void, Void> {
protected Void doInBackground(Void... task) {
DefaultApi apiInstance = new DefaultApi();
String apikey = "AkEzmf5bDGatkBld2PNjJfvRna3hHbZP";
String org = "FRA";
String dest = "LON";
String depDate = "2017-07-06";
Boolean oneWay = false;
String duration = "1";
Boolean direct = true;
String maxPrice = "1000";
String lat = "46.6734";
String lon = "-71.7412";
try {
ExtremeSearchResponse test = apiInstance.flightInspirationSearch(apikey, org, dest,depDate,oneWay,duration,direct,maxPrice,"DAY");
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
} catch (ApiException e) {
e.printStackTrace();
} catch (TimeoutException e) {
e.printStackTrace();
}
return null;}
protected void onProgressUpdate(Integer... progress) {
}
protected void onPostExecute(Long result) {
}
}
如果anyboy可以告诉我这不是API中的错误,而是异步任务实现的问题,我会很高兴 .