Android IBM Worklight 5.0.x:未捕获类型错误:无法调用方法';初始';未定义的

Android IBM Worklight 5.0.x:未捕获类型错误:无法调用方法';初始';未定义的,android,cordova,websphere,ibm-mobilefirst,websphere-commerce,Android,Cordova,Websphere,Ibm Mobilefirst,Websphere Commerce,下面我将介绍使用IBM Worklight 5.0.5的混合应用程序 但是,在应用程序中为store front设置连接详细信息并保存后,应用程序成功启动-store front(位于WebSphere Commerce服务器上的另一个Worklight混合应用程序)未正确初始化 我没有正确加载,而是收到以下错误消息: Uncaught TypeError: Cannot call method 'init' of undefined at 192.168.16.96/wcsstore/Auro

下面我将介绍使用IBM Worklight 5.0.5的混合应用程序

但是,在应用程序中为store front设置连接详细信息并保存后,应用程序成功启动-store front(位于WebSphere Commerce服务器上的另一个Worklight混合应用程序)未正确初始化

我没有正确加载,而是收到以下错误消息:

Uncaught TypeError: Cannot call method 'init' of undefined at 192.168.16.96/wcsstore/Aurora/mobile20/WorklightHybrid/android/js/initOptionsApp‌​‌​‌​.js:64
HTML文件代码:

<body id="content" class="bg_splash" style="display: none;">
    <!-- application UI goes here -->
    <div class="wrapper">
        <div id="splashscreen" class="splash_logo_container splash_logo_position splash_logo"></div>
        <div id="pagePort" class="hidden"></div>
    </div>
    <script src="js/version.js"></script>
    <script src="js/messages.js"></script>
    <script src="js/messages_en_US.js"></script>
    <script src="js/messages_fr_FR.js"></script>
    <script src="js/messages_de_DE.js"></script>
    <script src="js/messages_it_IT.js"></script>
    <script src="js/messages_es_ES.js"></script>
    <script src="js/messages_pt_BR.js"></script>
    <script src="js/messages_zh_CN.js"></script>
    <script src="js/messages_zh_TW.js"></script>
    <script src="js/messages_ko_KR.js"></script>
    <script src="js/messages_ja_JP.js"></script>
    <script src="js/messages_ko_KR.js"></script>
    <script src="js/messages_ru_RU.js"></script>
    <script src="js/messages_ro_RO.js"></script>
    <script src="js/messages_pl_PL.js"></script>
    <script src="js/WCLocalStorage.js"></script>
    <script src="js/WCHybrid.js"></script>
    <script src="js/initOptions.js"></script>
</body>
编辑:升级到Worklight 5.0.6.1后,以下问题已得到修复

当我在emulator上加载应用程序时,会出现三个不同的对话框,如下图所示

更多示例如下:


获取这些与Cordova相关的对话框通常意味着您在应用程序中使用的Cordova版本有问题

我强烈建议重新开始使用EclipseJavaEE4.2.2(Juno SR2),并安装Worklight Developer Edition(来自EclipseMarketplace的v5.0.6.1)。这可能会解决问题

编辑:从已编辑的问题中,它已被删除


initOptions的铰孔问题目前类似于此:

Hi-Idan,我没有在项目中包含任何外部库。phoneGap库在添加环境后提供Worklight包。甚至它也被用于简单的Worklight项目。我认为你说的做新的安装是对的。我知道。。。如果您选择这样做,请遵循我的建议。hi Idan,应用程序在android上看起来加载成功,但在加载主页后出现问题。它向我展示了未捕获的类型错误:无法调用192.168.16.96/wcsstore/Aurora/mobile20/WorklightHybrid/android/js/initOptionsApp.js中未定义的方法'init'。你知道为什么worklight对象没有初始化吗?用你的HTML和initOptions.js文件编辑你的问题。这个问题开始听起来类似于这个问题,查看是否有帮助:请确保已将正确版本的Worklight中所有必需的文件复制到WebSphere Commerce中。这是我唯一相信会导致t的事情
//Worklight Client initialization parameter array
var wlInitOptions = {
//Application should not attempt to connect to Worklight Server on application start up
connectOnStartup : false,
//Should application produce logs
enableLogger : true,
//Should direct updates prompt the user or occur silently
updateSilently: false
};

var initOptionsApp = (function() {

return {
    /**
     * Called when Cordova runtime has initialized
     */
    onDeviceReady: function() {
        var METHODNAME = "initOptionsApp.onDeviceReady";
        if (wlInitOptions.enableLogger) {
            WL.Logger.debug(METHODNAME, "ENTRY");
        }          
        //bind the hardware back button event listener
        document.addEventListener("backbutton", WCHybridApp.onBackKeyDown, false);
        if (wlInitOptions.enableLogger) {
            WL.Logger.debug(METHODNAME, "EXIT");
        }
    }
};

})();

/**
* Bind the Worklight Client initialization call to the page load event
*/
if (window.addEventListener) {
window.addEventListener('load', function() { WL.Client.init(wlInitOptions); }, false);
window.addEventListener('unload', function() { WCHybridApp.updateHistory(); }, false);
} else if (window.attachEvent) {
window.attachEvent('onload',  function() { WL.Client.init(wlInitOptions); });
}

/**
 * Bind events to the Cordova deviceready event
 */
if (document.addEventListener) {
document.addEventListener("deviceready", initOptionsApp.onDeviceReady, false);
}