No se puede crear el convertidor para java.util.List Retrofit 2.0.0-beta2
Sólo estoy haciendo una solicitud GET, pero estoy recibiendo este error:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.yomac_000.chargingpoint/com.example.yomac_000.chargingpoint.AllStores}: java.lang.IllegalArgumentException: Unable to create converter for java.util.List<model.Store>
Y es debido a esta línea de código:
- ¿cuál es el propósito de onSurfaceChanged?
- ¿Podría pasar Context a un método auxiliar estático como un argumento potencialmente causar una pérdida de memoria?
- Volver a Actividad principal de la actividad arbitraria en la aplicación android
- El ayudante emergente del menú no se puede utilizar sin ancla
- Qué es la longitud de nombre variable?
Call<List<Store>> call = subpriseAPI.listStores(response);
Así que había intentado con esta línea de código para ver qué tipo es:
System.out.println(subpriseAPI.listStores(response).getClass().toString());
Pero entonces tengo el mismo error por lo que no me deja saber qué tipo es. Aquí abajo puedes ver mi código.
StoreService.java:
public class StoreService { public static final String BASE_URL = "http://getairport.com/subprise/"; Retrofit retrofit = new Retrofit.Builder() .baseUrl(BASE_URL) .build(); SubpriseAPI subpriseAPI = retrofit.create(SubpriseAPI.class); String response = ""; public List<Store> getSubprises() { Call<List<Store>> call = subpriseAPI.listStores(response); try { List<Store> listStores = call.execute().body(); System.out.println("liststore "+ listStores.iterator().next()); return listStores; } catch (IOException e) { // handle errors } return null; } }
SubpriseAPI.java:
public interface SubpriseAPI { @GET("api/locations/get") Call<List<Store>> listStores(@Path("store") String store); }
Store.java:
public class Store { String name; }
Estoy utilizando Retrofit versión 2.0.0-beta2.
- Haga que el temporizador de cuenta regresiva pase de 10sec a 1sec
- La entrada de recursos ya está definida
- "Java.lang.NullPointerException" al intentar instalar Android SDK
- AutoCompleteTextView - deshabilitar el filtrado
- Cómo detener el ataque hack / DOS en la API web
- Superponer una imagen (sobre lienzo) en un VideoView?
- Eclipse ADT: Java se inició pero devolvió el código de salida = 13
- Lectura de Json String usando Gson resultados error "no un JSON Array"
En la versión 2+ es necesario informar al convertidor
CONVERTIDORES
Por defecto, Retrofit sólo puede deserializar cuerpos HTTP en el tipo ResponseBody de OkHttp y sólo puede aceptar su tipo RequestBody para @Body.
Los convertidores se pueden agregar para soportar otros tipos. Seis módulos hermanos adaptan las bibliotecas de serialización populares para su conveniencia.
Gson: com.squareup.retrofit: convertidor-gson Jackson: com.squareup.retrofit: convertidor-jackson Moshi: com.squareup.retrofit: convertidor-moshi Protobuf: com.squareup.retrofit: convertidor-protobuf Alambre: com.squareup. Retrofit: convertidor-alambre XML simple: com.squareup.retrofit: convertidor-simplexml
//Square Lib, Consume Rest API compile 'com.squareup.retrofit:retrofit:2.0.0-beta1' compile 'com.squareup.okhttp:okhttp:2.4.0' compile 'com.squareup.retrofit:converter-gson:2.0.0-beta1'
Asi que,
String baseUrl = "" ; Retrofit client = new Retrofit.Builder() .baseUrl(baseUrl) .addConverterFactory(GsonConverterFactory.create()) .build();
public interface SubpriseAPI { @GET("api/locations/get") Call<List<Store>> listStores(@Path("store") String store); }
Declaró un @Path
llamado almacén, por lo que en su anotación @GET
retrofit está esperando encontrar el marcador de posición para la sustitución. P.ej
@GET("api/locations/{store}") Call<List<Store>> listStores(@Path("store") String store);
- AndEngine- Dibujo del niño del sprite detrás de su padre
- El método getChildFragmentManager () no está definido