#android #cordova #ibm-mobilefirst
#Android #кордова #ibm-mobilefirst
Вопрос:
В IBM Mobilefirst fix pack версии 7.1.0.00.20161006-0540
navigator.geolocation.getCurrentPosition(successfulcallback,errorCallback,{timeout:15000});
Вызов приведенной выше строки кода на Android прерывает работу приложения, вызывая его сбой с ошибкой ниже. Но это работает на iOS.
10-13 16:00:30.477: W / System.err(12229): java.lang.Исключение ClassNotFoundException: org.apache.cordova.geolocation.GeoBroker 10-13 16:00:30.477: W / System.err(12229): на java.lang.Class.classForName(собственный метод) 10-13 16:00:30.477: W / System.err(12229): на java.lang.Class.forName(Class.java:251) 10-13 16:00:30.477: W /System.err(12229): на java.lang.Class.forName(Class.java:216) 10-13 16:00:30.477: W/System.err(12229): в org.apache.cordova.PluginManager.instantiatePlugin(PluginManager.java:365) 10-13 16:00:30.477: W/System.err(12229): в org.apache.cordova.PluginManager.getPlugin(PluginManager.java:195) 10-13 16:00:30.477: W/System.err(12229): в org.apache.cordova.CordovaChromeClient.onGeolocationPermissionsShowPrompt(CordovaChromeClient.java:275) 10-13 16:00:30.477: W/System.err(12229): на com.android.webview.chromium.WebViewContentsClientAdapter.onGeolocationPermissionsShowPrompt(WebViewContentsClientAdapter.java:547) 10-13 16:00:30.477: W / System.err(12229): в com.android.org.chromium.android_webview.AwContents.onGeolocationPermissionsShowPrompt(AwContents.java:1842) 10-13 16:00:30.477: W / System.err(12229): в com.android.org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(собственный метод) 10-13 16:00:30.477: W / System.err(12229): на com.android.org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:27) 10-13 16:00:30.477: W/System.err(12229): в android.os.Handler.DispatchMessage(Handler.java:102) 10-13 16:00:30.482: W / System.ошибка (12229): на Android.os.Looper.цикл (Looper.java:157) 10-13 16:00:30.482: W/System.err(12229): в android.app.ActivityThread.main(ActivityThread.java:5335) 10-13 16:00:30.482: W/System.ошибка (12229): приjava.lang.reflect.Метод.Вызывающий (собственный метод) 10-13 16:00:30.482: W / System.err(12229): на java.lang.reflect.Метод.invoke(Метод.java:515) 10-13 16:00:30.482: W/System.err(12229): в com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265) 10-13 16:00:30.482: С системой.ошибка (12229): в com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081) 10-13 16:00:30.482: W / System.err(12229): в dalvik.system.NativeStart.main(собственный метод) 10-13 16:00:30.482: Ошибка / System.err(12229): вызвано: java.lang.Ошибка NoClassDefFoundError: org / apache /cordova /geolocation /GeoBroker 10-13 16:00:30.482: С ошибкой System.err(12229): … еще 18 10-13 16:00:30.482: с ошибкой System.err(12229): Вызвано: java.lang.Исключение ClassNotFoundException: не найден класс «org.apache.cordova.geolocation.ГеоБрокер» на пути: DexPathList[[zip-файл «/data/app/com.metlifeapps.metlifeus-1.apk»],nativeLibraryDirectories=[/data/app-lib/com.metlifeapps.metlifeus-1 , /поставщик / библиотека, /система/ библиотека]] 10-13 16:00:30.482: Вт/System.err(12229): в dalvik.system.BaseDexClassLoader.FindClass(BaseDexClassLoader.java:67) 10-13 16:00:30.482: W /System.err(12229): на java.lang.Загрузчик классов.loadClass(ClassLoader.java:497) 10-13 16:00:30.482: W /System.err(12229): на java.lang.Загрузчик классов.loadClass(ClassLoader.java:457) 10-13 16:00:30.487: W /System.err(12229): … еще 18 10-13 16:00:30.487: I/System.out(12229): Ошибка при добавлении плагина org.apache.cordova.geolocation.GeoBroker. 10-13 16:00:30.487: W / System.err(12229): java.lang.Исключение NullPointerException 10-13 16:00:30.487: W/System.err(12229): в org.apache.cordova.PluginManager.getPlugin(PluginManager.java:197) 10-13 16:00:30.487: W/System.err(12229): в org.apache.cordova.CordovaChromeClient.onGeolocationPermissionsShowPrompt(CordovaChromeClient.java:275) 10-13 16:00:30.487: W/System.err(12229): на com.android.webview.chromium.WebViewContentsClientAdapter.onGeolocationPermissionsShowPrompt(WebViewContentsClientAdapter.java:547) 10-13 16:00:30.487: W / System.err(12229): в com.android.org.chromium.android_webview.AwContents.onGeolocationPermissionsShowPrompt(AwContents.java:1842) 10-13 16:00:30.487: W/System.err(12229): на com.android.org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(собственный метод) 10-13 16:00:30.487: W /System.err(12229): на com.android.org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:27) 10-13 16:00:30.487: W/System.err(12229): в android.os.Handler.DispatchMessage(Handler.java:102) 10-13 16:00:30.487: W / System.ошибка (12229): на Android.os.Looper.цикл (Looper.java:157) 10-13 16:00:30.487: W/System.err(12229): в android.app.ActivityThread.main(ActivityThread.java:5335) 10-13 16:00:30.487: W/System.ошибка (12229): приjava.lang.reflect.Метод.Вызывающий (собственный метод) 10-13 16:00:30.487: W /System.err(12229): в java.lang.reflect.Метод.invoke(Метод.java:515) 10-13 16:00:30.487: W/System.err(12229): в com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265) 10-13 16:00:30.487: С системой.ошибка (12229): в com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081) 10-13 16:00:30.487: W/System.err(12229): в dalvik.system.NativeStart.main(собственный метод)
Ответ №1:
Это известная проблема, которая затрагивает версии 7.0 и 7.1 IBM MobileFirst Platform Foundation.
СБОЙ ПРИЛОЖЕНИЯ PI70478 НА УСТРОЙСТВАХ ANDROID ПОСЛЕ УСТАНОВКИ IFIX 7.1.0.00.20160919-1915
Пока это не исправлено с помощью iFix, вы можете обойти эту проблему, удалив следующее из сгенерированного config.xml в проекте Android:
<feature name="Geolocation">
<param name="android-package" value="org.apache.cordova.geolocation.GeoBroker" />
</feature>