我在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中的错误,而是异步任务实现的问题,我会很高兴 .