Search code examples
androidcordovaphonegap-pluginsibm-mobilefirsthybrid-mobile-app

Hybrid App Error adding plugin nl.xservices.plugins.Calendar


Using this walk through i added cordova calendar for the android environment of my hybrid application. I try to add an event and get the log below.

http://phonegap-plugins.com/plugins/eddyverbruggen/calendar-phonegap-plugin

I feel like the java classes are in the wrong spot.

W/System.err(22908): java.lang.ClassNotFoundException: nl.xservices.plugins.Calendar

W/System.err(22908): at java.lang.Class.classForName(Native Method)

W/System.err(22908): at java.lang.Class.forName(Class.java:251)

W/System.err(22908): at java.lang.Class.forName(Class.java:216)

W/System.err(22908): at org.apache.cordova.PluginManager.instantiatePlugin(PluginManager.java:363)

W/System.err(22908): at org.apache.cordova.PluginManager.getPlugin(PluginManager.java:193)

W/System.err(22908): at org.apache.cordova.PluginManager.exec(PluginManager.java:141)

W/System.err(22908): at org.apache.cordova.CordovaBridge.jsExec(CordovaBridge.java:61)

W/System.err(22908): at org.apache.cordova.ExposedJsApi.exec(ExposedJsApi.java:40)

W/System.err(22908): at com.android.org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)

W/System.err(22908): at com.android.org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:27)

W/System.err(22908): at android.os.Handler.dispatchMessage(Handler.java:102)

W/System.err(22908): at android.os.Looper.loop(Looper.java:136)

W/System.err(22908): at android.os.HandlerThread.run(HandlerThread.java:61)

W/System.err(22908): Caused by: java.lang.NoClassDefFoundError: nl/xservices/plugins/Calendar

W/System.err(22908): ... 13 more

W/System.err(22908): Caused by: java.lang.ClassNotFoundException: Didn't find class "nl.xservices.plugins.Calendar" on path: DexPathList[[zip file "/data/app/com.SFStudent-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.SFStudent-1, /vendor/lib, /system/lib]]

W/System.err(22908): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)

W/System.err(22908): at java.lang.ClassLoader.loadClass(ClassLoader.java:497)

W/System.err(22908): at java.lang.ClassLoader.loadClass(ClassLoader.java:457)

W/System.err(22908): ... 13 more

I/System.out(22908): Error adding plugin nl.xservices.plugins.Calendar.

W/System.err(22908): java.lang.NullPointerException

W/System.err(22908): at org.apache.cordova.PluginManager.getPlugin(PluginManager.java:195)

W/System.err(22908): at org.apache.cordova.PluginManager.exec(PluginManager.java:141)

W/System.err(22908): at org.apache.cordova.CordovaBridge.jsExec(CordovaBridge.java:61)

W/System.err(22908): at org.apache.cordova.ExposedJsApi.exec(ExposedJsApi.java:40)

W/System.err(22908): at com.android.org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)

W/System.err(22908): at com.android.org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:27)

W/System.err(22908): at android.os.Handler.dispatchMessage(Handler.java:102)

W/System.err(22908): at android.os.Looper.loop(Looper.java:136)

W/System.err(22908): at android.os.HandlerThread.run(HandlerThread.java:61)

hybrid app

android app


Solution

  • Worklight/MobileFirst < 8.0 beta do not have proper support for Cordova plug-ins.

    As you go through the suggested guide, make sure to also review the following, providing the required additional steps to take: https://mobilefirstplatform.ibmcloud.com/blog/2015/08/03/integrating-3rd-party-cordova-plug-ins/

    Namely:

    • Modifying files so that the plug-in will be recognized
    • Using Ant to keep the plug-in integrity post-Worklight build (which will otherwise break it)