首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓7.1 -在MobileFirst上部署JSONStore混合应用程序时出现的问题

问安卓7.1 -在MobileFirst上部署JSONStore混合应用程序时出现的问题
EN

Stack Overflow用户
提问于 2016-01-09 03:21:18
回答 2查看 314关注 0票数 0

我正在尝试使用JSONStore来满足其中一个需求。

由于它是混合应用程序,因此我通过以下步骤对其进行了配置

使用应用程序描述符编辑器,打开文件Application - Descriptor ptor.xml单击Design选项卡。在概述下,展开应用程序您的应用程序名称。单击可选功能。单击Add。选择JSONStore。单击Ok。在Project Explorer视图中,右键单击以应用程序名称为标题的文件夹。单击Run As (运行方式)。单击“在MobileFirst开发服务器上运行”。

下面是我用来在JSONStore中创建文档的示例代码。我遵循了这个documentation中给出的说明。

代码语言:javascript
复制
WL.Logger.debug ("Successfully connected to MobileFirst Server.");

    var collectionName = 'SomeFlag';

    if(WL.JSONStore.get(collectionName) == null && WL.JSONStore.get(collectionName) == undefined){      
        // Object that defines all the collections.
        var collections = {

          // Object that defines the 'people' collection.
                userAgreement : {

            // Object that defines the Search Fields for the 'people' collection.
            searchFields : {someFlag: 'boolean'}
          }
        };

        // Optional options object.
        var options = {
          localKeyGen : false
        };

        WL.JSONStore.init(collections, options)

        .then(function () {
          var data = [{someFlag: false}];

          // Optional options for add.
          var addOptions = {

            // Mark data as dirty (true = yes, false = no), default true.
            markDirty: true
          };

          // Get an accessor to the people collection and add data.
          return WL.JSONStore.get(collectionName).add(data, addOptions);
        })

        .then(function (numberOfDocumentsAdded) {
            WL.Logger.debug ("Number Of Documents Added " +numberOfDocumentsAdded);
            alert ("Number Of Documents Added " +numberOfDocumentsAdded);
          // Add was successful.
        })

        .fail(function (errorObject) {
           // Handle failure for any of the previous JSONStore operations (init, add).
            WL.Logger.debug ("JSONStore Failed to add any document errorObject " +errorObject);
        });
    }

当在Android中运行时,JSONStore创建失败。

代码语言:javascript
复制
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/worklight/jsonstore/util/JSONStoreUtil;
    01-08 13:34:03.962 12289-12425/com.DCSSMobileApp W/System.err:     at com.worklight.androidgap.jsonstore.dispatchers.BaseActionDispatcher.<init>(BaseActionDispatcher.java:44)
    01-08 13:34:03.962 12289-12425/com.DCSSMobileApp W/System.err:     at com.worklight.androidgap.jsonstore.dispatchers.BaseDatabaseActionDispatcher.<init>(BaseDatabaseActionDispatcher.java:29)
    01-08 13:34:03.962 12289-12425/com.DCSSMobileApp W/System.err:     at com.worklight.androidgap.jsonstore.dispatchers.AllDirtyActionDispatcher.<init>(AllDirtyActionDispatcher.java:36)
    01-08 13:34:03.962 12289-12425/com.DCSSMobileApp W/System.err:     at com.worklight.androidgap.plugin.StoragePlugin.initialize(StoragePlugin.java:59)
    01-08 13:34:03.962 12289-12425/com.DCSSMobileApp W/System.err:     at org.apache.cordova.CordovaPlugin.privateInitialize(CordovaPlugin.java:50)
    01-08 13:34:03.962 12289-12425/com.DCSSMobileApp W/System.err:     at org.apache.cordova.PluginManager.getPlugin(PluginManager.java:195)
    01-08 13:34:03.962 12289-12425/com.DCSSMobileApp W/System.err:     at org.apache.cordova.PluginManager.exec(PluginManager.java:141)
    01-08 13:34:03.962 12289-12425/com.DCSSMobileApp W/System.err:     at org.apache.cordova.CordovaBridge.jsExec(CordovaBridge.java:61)
    01-08 13:34:03.962 12289-12425/com.DCSSMobileApp W/System.err:     at org.apache.cordova.ExposedJsApi.exec(ExposedJsApi.java:40)
    01-08 13:34:03.962 12289-12425/com.DCSSMobileApp W/System.err:     at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
    01-08 13:34:03.962 12289-12425/com.DCSSMobileApp W/System.err:     at org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:37)
    01-08 13:34:03.962 12289-12425/com.DCSSMobileApp W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
    01-08 13:34:03.962 12289-12425/com.DCSSMobileApp W/System.err:     at android.os.Looper.loop(Looper.java:135)
    01-08 13:34:03.962 12289-12425/com.DCSSMobileApp W/System.err:     at android.os.HandlerThread.run(HandlerThread.java:61)
    01-08 13:34:03.962 12289-12425/com.DCSSMobileApp W/System.err: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.worklight.jsonstore.util.JSONStoreUtil" on path: DexPathList[[zip file "/data/app/com.DCSSMobileApp-2/base.apk"],nativeLibraryDirectories=[/data/app/com.DCSSMobileApp-2/lib/arm, /vendor/lib, /system/lib]]
    01-08 13:34:03.964 12289-12425/com.DCSSMobileApp W/System.err:     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
    01-08 13:34:03.964 12289-12425/com.DCSSMobileApp W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
    01-08 13:34:03.964 12289-12425/com.DCSSMobileApp W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
    01-08 13:34:03.964 12289-12425/com.DCSSMobileApp W/System.err:  ... 14 more
    01-08 13:34:03.964 12289-12425/com.DCSSMobileApp W/System.err:  Suppressed: java.lang.ClassNotFoundException: com.worklight.jsonstore.util.JSONStoreUtil
    01-08 13:34:03.965 12289-12425/com.DCSSMobileApp W/System.err:     at java.lang.Class.classForName(Native Method)
    01-08 13:34:03.965 12289-12425/com.DCSSMobileApp W/System.err:     at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
    01-08 13:34:03.965 12289-12425/com.DCSSMobileApp W/System.err:     at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
    01-08 13:34:03.965 12289-12425/com.DCSSMobileApp W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
    01-08 13:34:03.965 12289-12425/com.DCSSMobileApp W/System.err:      ... 15 more
    01-08 13:34:03.965 12289-12425/com.DCSSMobileApp W/System.err:  Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
EN

回答 2

Stack Overflow用户

发布于 2016-01-09 05:40:54

我使用的是与注释中提到的版本相同的版本,并且能够在遇到此错误的情况下成功运行JSONStore。

Main.js创建一个新的混合应用,并添加了Android environment

  • Added
  1. 可选功能
  2. 在common/js/ JSONStore .js>wlCommonInit()中添加了以下代码:

函数wlCommonInit(){ var collectionName = 'people';//定义所有集合的对象。var collection ={ //定义'people‘集合的对象。people:{ //定义'people‘集合的搜索字段的对象。searchFields:{name:'string',age:'integer'} };//可选的options对象var options ={ //可选用户名,默认为'jsonstore‘。用户名:'carlos',//可选密码,默认无密码。密码:'123',//可选的本地密钥生成标志,默认为false。localKeyGen : false };WL.JSONStore.init(集合,选项) .then(function () { alert ("success");});}

我在Android Emulator中启动了应用程序,并显示了警告。

票数 0
EN

Stack Overflow用户

发布于 2016-01-13 02:09:58

终于让它工作了。我发现jsonstore.jar没有包含在我的安卓项目库中,这导致了这个错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34684502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档