Quantcast
Viewing all articles
Browse latest Browse all 212

Error de NullPointer en la última SDK de Mercado Pago

Estoy trabjando con la última versión de la SDK de Mercado Pago para Android, la 3.2.0, y con el código de la última documentación.

El error se produce en tiempo de ejecución (runtime) cuando se ejecuta el submit del activity, luego de completar todos los datos que se piden (número de tarjeta, apellido, nombre, fecha expiración, código, documento), o sea que puedo cargar todos los datos de pago pero explota antes de devolver el callback.

Por lo que pude debuguear, lo hace cuando quiere obtener el token de la tarjeta, pero no tengo claro si es que el token que crea la SDK es nulo o uno de las 3 variables Date internas, lo que estoy seguro es que es un error de la versión actual.

En un fragment tengo este código de llamada a la activity de MercadoPago:

List<Item> items = createItems();GregorianCalendar gc = new GregorianCalendar();gc.add(Calendar.DATE, 1);CheckoutPreference checkoutPreference = new CheckoutPreference.Builder()    .addItems(items)    .setSite(Sites.ARGENTINA)    .addExcludedPaymentType(PaymentTypes.TICKET) //Handle exclusions by payment types    //.addExcludedPaymentMethod(PaymentMethods.ARGENTINA.VISA) //Exclude specific payment methods    //.setMaxInstallments(1) //Limit the amount of installments    .setExpirationDate(gc.getTime())    .setActiveFrom(new Date())    .setPayerEmail("xxxx")    .enableAccountMoney()    .build();startMercadoPagoCheckout(checkoutPreference);private void startMercadoPagoCheckout(CheckoutPreference checkoutPreference) {        new MercadoPagoCheckout.Builder()            .setActivity(getActivity())            .setPublicKey("TEST-24db192f-ebce-4270-8108-b8faa753e9be")            .setCheckoutPreference(checkoutPreference)            .startForPaymentData();    }

A continuación les paso el stack trace:

08-08 09:17:42.478 29816-29816/xxxx E/AndroidRuntime: FATAL EXCEPTION: main Process: , PID: 29816 java.lang.NullPointerException: Attempt to invoke virtual method 'long java.util.Date.getTime()' on a null object reference  at java.util.Calendar.setTime(Calendar.java:1195)   at java.text.SimpleDateFormat.formatImpl(SimpleDateFormat.java:518)  at java.text.SimpleDateFormat.format(SimpleDateFormat.java:820)  at java.text.DateFormat.format(DateFormat.java:314)  at com.google.gson.DefaultDateTypeAdapter.write(DefaultDateTypeAdapter.java:88)  at com.google.gson.DefaultDateTypeAdapter.write(DefaultDateTypeAdapter.java:40)  at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:69)  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:125)  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:243)  at com.google.gson.Gson.toJson(Gson.java:669)  at com.google.gson.Gson.toJson(Gson.java:648)  at com.google.gson.Gson.toJson(Gson.java:603)  at com.google.gson.Gson.toJson(Gson.java:583)  at com.mercadopago.util.JsonUtil.toJson(JsonUtil.java:32)  at com.mercadopago.GuessingCardActivity.finishCardFlow(GuessingCardActivity.java:1555)  at com.mercadopago.presenters.GuessingCardPresenter.resolvePayerCosts(GuessingCardPresenter.java:1096)  at com.mercadopago.presenters.GuessingCardPresenter.access$2300(GuessingCardPresenter.java:48)  at com.mercadopago.presenters.GuessingCardPresenter$9.success(GuessingCardPresenter.java:1066)  at com.mercadopago.presenters.GuessingCardPresenter$9.success(GuessingCardPresenter.java:1059)  at com.mercadopago.adapters.ErrorHandlingCallAdapter$MPCallAdapter$1$1.run(ErrorHandlingCallAdapter.java:90)  at android.os.Handler.handleCallback(Handler.java:739)  at android.os.Handler.dispatchMessage(Handler.java:95)  at android.os.Looper.loop(Looper.java:135)  at android.app.ActivityThread.main(ActivityThread.java:5343)  at java.lang.reflect.Method.invoke(Native Method)  at java.lang.reflect.Method.invoke(Method.java:372)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700) 08-08 09:17:42.482 1063-1462/? W/ActivityManager: Force finishing activity 1 xxx/com.mercadopago.GuessingCardActivity

Viewing all articles
Browse latest Browse all 212

Trending Articles