2013-07-24 3 views
1

Я использую библиотеку MECL PayPal в одном из моих проектов, и она была протестирована и работала по назначению на полдюжины устройств. Тем не менее, когда я испытал его на Nexus 7 NullPointerException всегда выброшен, когда метод PayPal.fetchDeviceReferenceTokenWithAppID() называется:PayPal.fetchDeviceReferenceTokenWithAppID() вызывает NullPointerException на Nexus 7

07-24 23: 26: 11,466: Вт/System.err (28266): java.lang.NullPointerException 07-24 23: 26: 11.466: W/System.err (28266): at libcore.net.UriCodec.encode (UriCodec.java:132) 07-24 23: 26: 11.466: W/System.err (28266): at java.net.URLEncoder.encode (URLEncoder.java:57) 07-24 23: 26: 11.466: W/System.err (28266): at com.paypal.android.acg (Неизвестный источник) 07-24 23: 26: 11.466: W/System.err (28266): at com.paypal.android.ace (Неизвестный источник) 07-24 2 3: 26: 11.466: W/System.err (28266): at com.paypal.android.acb (Неизвестный источник) 07-24 23: 26: 11.466: W/System.err (28266): at ru .paypal.android.adrun (Неизвестный источник) 07-24 23: 26: 11.496: D/TilesManager (28266): запуск TG # 0, 0x672a6428 07-24 23: 26: 11.496: D/TilesManager (28266) : новый EGLContext из рамки: 693dbd88 07-24 23: 26: 11.496: D/GLWebViewState (28266): Reinit shader 07-24 23: 26: 11.506: D/GLWebViewState (28266): Reinit transferQueue 07-24 23 : 26: 12.566: D/dalvikvm (28266): GC_CONCURRENT освобожден 1207K, 10% бесплатно 13335K/14688K, приостановлено 3 мс + 6 мс, всего 55 мс 07-24 23: 26: 13.136: E/Error (28266): Ошибка аутентификации , кнопка не включена. 07-24 23: 26: 13.136: W/System.err (28266): java.lang.NullPointerException 07-24 23: 26: 13.136: W/System.err (28266): at com.paypal.android .aca (Неизвестный источник) 07-24 23: 26: 13.136: W/System.err (28266): at com.paypal.android.ace (Неизвестный источник) 07-24 23: 26: 13.136: W/System .ru (28266): at com.paypal.android.acb (Неизвестный источник) 07-24 23: 26: 13.136: W/System.err (28266): at com.paypal.android.adrun (Неизвестный источник)

Обратите внимание, что точно такой же APK может работать без проблем на Galaxy Nexus, S3, и даже Nexus 7 эмулятор, он только перестал работать на Nexus 7. Я в полной растерянности на данном этапе так любая помощь приветствуется.

+0

Работает ли образец приложения на Nexus 7? Я предполагаю, что это не так, потому что это выглядит как экологическая проблема. – IanB

+0

Это не так. Что вы подразумеваете под воздействием окружающей среды и как ее разрешить? – Kai

ответ

1

Я не использовал библиотеку MECL Paypal, но хотел бы сделать несколько общих замечаний, которые могли бы помочь вам решить это самостоятельно.

В таких случаях, как это, NPE, вероятно, связано с одним из следующих способов:

1) NPE происходит потому, что вы не связаны все необходимые библиотеки в ваш APK и Nexus 7 пытается позвонить то, что другие устройства нет. Это относительно маловероятно, но трассировка логарифма для успешного устройства должна доказать или опровергнуть это. т. е. если трассировка logcat для вашего другого устройства (ов) показывает, что PayPal.fetchDeviceReferenceTokenWithAppID работает нормально - тогда это не проблема.

2) NPE происходит потому, что что-то отсутствует в вашем Nexus 7 (или нуждается в обновлении). Это то, что я имею в виду под воздействием экологической проблемы. Внимательно проверьте документацию Paypal на требуемые уровни программного обеспечения. Если пример приложения работает на других устройствах, но не на Nexus 7, то это вероятная причина проблемы. Это так, что MECL больше не поддерживается Paypal? - означает ли это, что требуемое обновление было снято? PayPal.fetchDeviceReferenceTokenWithAppID выглядит как что-то, что вы делали бы в начале транзакции, поэтому я (все еще) предполагаю, что это экологическая проблема.

Я не могу сказать вам, какова ваша конкретная проблема, но, надеюсь, это поможет вам добиться определенного прогресса.

+0

Как уже упоминалось, PayPal.fetchDeviceReferenceTokenWithAppID отлично работает на всех других устройствах. И да, MECL больше не поддерживается, но мы используем его в этом проекте по историческим причинам. Это расстраивает, потому что библиотека запутана, поэтому не только трудно определить источник проблемы, но и исправить ее, мы, вероятно, должны сами декомпилировать ее и изменить ее таким образом. – Kai

Смежные вопросы