IBM Worklight 6.0 - 无法在avd上使用dojo toolkit for android环境运行示例混合工作灯应用程序?

时间:2013-07-09 08:53:49

标签: android dojo ibm-mobilefirst

我已经为 android environment2.2 使用 worklight 6.0 dojo toolkit 1.9 开发了一个示例混合应用程序。 当我在模拟器上测试这个应用程序时它工作正常。但是当我在AVD或实际设备上试用它时,它会运行但只显示空白屏幕。 无法理解如何使其在实际设备上正常工作?

当我尝试在AVD上运行时,我注意到以下错误列表:

07-08 19:51:22.462: I/dalvikvm(664): Could not find method org.apache.cordova.CordovaWebView.setOverScrollMode, referenced from method org.apache.cordova.DroidGap.init
07-08 19:51:22.462: W/dalvikvm(664): VFY: unable to resolve virtual method 12024: Lorg/apache/cordova/CordovaWebView;.setOverScrollMode (I)V
07-08 19:51:22.462: D/dalvikvm(664): VFY: replacing opcode 0x6e at 0x0043
07-08 19:51:22.502: I/CordovaLog(664): Changing log level to DEBUG(3)
07-08 19:51:22.502: I/CordovaLog(664): Found preference for exit-on-suspend=false
07-08 19:51:22.502: D/CordovaLog(664): Found preference for exit-on-suspend=false
07-08 19:51:22.502: D/DroidGap(664): DroidGap.onCreate()
07-08 19:51:22.552: I/dalvikvm(664): Could not find method android.webkit.WebView.<init>, referenced from method org.apache.cordova.CordovaWebView.<init>
07-08 19:51:22.552: W/dalvikvm(664): VFY: unable to resolve direct method 536: Landroid/webkit/WebView;.<init> (Landroid/content/Context;Landroid/util/AttributeSet;IZ)V
07-08 19:51:22.552: D/dalvikvm(664): VFY: replacing opcode 0x70 at 0x0001
07-08 19:51:22.552: D/dalvikvm(664): VFY: dead code 0x0004-0046 in Lorg/apache/cordova/CordovaWebView;.<init> (Landroid/content/Context;Landroid/util/AttributeSet;IZ)V
07-08 19:51:22.852: D/JsMessageQueue(664): Set native->JS mode to 2
07-08 19:51:22.852: I/CordovaWebView(664): Disabled addJavascriptInterface() bridge since Android version is old.
07-08 19:51:22.852: E/dalvikvm(664): Could not find class 'android.webkit.WebResourceResponse', referenced from method org.apache.cordova.CordovaWebViewClient.getWhitelistResponse
07-08 19:51:22.852: W/dalvikvm(664): VFY: unable to resolve new-instance 176 (Landroid/webkit/WebResourceResponse;) in Lorg/apache/cordova/CordovaWebViewClient;
07-08 19:51:22.852: D/dalvikvm(664): VFY: replacing opcode 0x22 at 0x000b
07-08 19:51:22.852: D/dalvikvm(664): VFY: dead code 0x000d-0014 in Lorg/apache/cordova/CordovaWebViewClient;.getWhitelistResponse ()Landroid/webkit/WebResourceResponse;
07-08 19:51:22.872: W/dalvikvm(664): VFY: unable to find class referenced in signature (Landroid/webkit/WebResourceResponse;)
07-08 19:51:22.892: W/dalvikvm(664): VFY: unable to find class referenced in signature (Landroid/webkit/WebResourceResponse;)
07-08 19:51:22.892: W/dalvikvm(664): VFY: unable to find class referenced in signature (Landroid/webkit/WebResourceResponse;)
07-08 19:51:23.012: D/DroidGap(664): DroidGap.init()
07-08 19:51:23.122: I/UICAndroid(664): {LoggingLevel=3, AddCookieDomain=false, PostMessageTimeout=60000, CookiePath=/, CookieParam=, KillSwitchTimeInterval=180, BufferPercent=20, HasToPersistLocalCache=true , MessageTypeHeader=WorklightHit, CookieDomain=, WhiteListParam=id, LibraryVersion=8.8.1.0, MaskIdList=com.tealeaf.sp:id/EditText*,com.tealeaf.sp:id/login.password, PostMessageLevelWiFi=3, UseRandomSample=false, KillSwitchMaxNumberOfTries=3, SensitiveCapitalCaseAlphabet=X, FilterMessageTypes=true, PostMessageTimeIntervals=30, SensitiveSmallCaseAlphabet=x, CompressPostMessage=true, PostMessageMaxBytesSize=20000, SensitiveSymbol=#, PostMessageLevelCellular=3, MessageTypes=4,5,6, PostMessageSocketTimeout=60000, CookieUrl=, UseWhiteList=true, KillSwitchUrl=, KillSwitchEnabled=false, MessageVersion=2.1.0.0, HasMasking=true, TimeIntervalBetweenSnapshots=60, PostMessageUrl=@USE_WORKLIGHT_DEFAULT@, CachedFileMaxBytesSize=512000, BufferLimit=100, AddCookiePath=false, SensitiveNumber=9, CachingLevel=3, ManualPostEnabled=true, HasCustomMask=true, DisplayLogging=true, MaxStringsLength=300, AddMessageTypeHeader=true, RandomSampleParam=, DoPostOnIntervals=false}
07-08 19:51:23.232: D/dalvikvm(664): GC_FOR_MALLOC freed 3250 objects / 238920 bytes in 63ms
07-08 19:51:23.262: I/UICAndroid(664): Screen height:800  Screen width420
07-08 19:51:23.342: D/DroidGap(664): Resuming the App
07-08 19:51:23.402: I/UICAndroid(664): Network changed
07-08 19:51:23.432: D/SoftKeyboardDetect(664): Ignore this event
07-08 19:51:23.502: D/WLDroidGap(664): New installation/upgrade detected, copying resources and saving new checksum
07-08 19:51:23.542: D/SoftKeyboardDetect(664): Ignore this event
07-08 19:51:23.732: I/UICAndroid(664): Did Client State change?: true
07-08 19:51:26.842: D/dalvikvm(664): GC_FOR_MALLOC freed 5447 objects / 429112 bytes in 71ms
07-08 19:51:31.494: D/WLDroidGap(664): Started copying files to local storage...
07-08 19:51:32.402: D/dalvikvm(664): GC_FOR_MALLOC freed 6653 objects / 552224 bytes in 58ms
07-08 19:51:34.072: D/dalvikvm(664): GC_FOR_MALLOC freed 1876 objects / 203720 bytes in 50ms
07-08 19:51:35.341: D/dalvikvm(664): GC_FOR_MALLOC freed 1528 objects / 494368 bytes in 71ms
07-08 19:51:36.441: D/dalvikvm(664): GC_FOR_MALLOC freed 2070 objects / 515744 bytes in 61ms
07-08 19:51:38.511: D/dalvikvm(664): GC_FOR_MALLOC freed 2270 objects / 520176 bytes in 64ms
07-08 19:51:40.661: D/dalvikvm(664): GC_FOR_MALLOC freed 2191 objects / 523952 bytes in 52ms
07-08 19:51:41.061: D/dalvikvm(664): GC_FOR_MALLOC freed 1969 objects / 525120 bytes in 65ms
07-08 19:51:42.782: D/dalvikvm(664): GC_FOR_MALLOC freed 2305 objects / 526720 bytes in 52ms
07-08 19:51:46.472: D/dalvikvm(664): GC_FOR_MALLOC freed 2529 objects / 529368 bytes in 52ms
07-08 19:51:47.993: D/WLDroidGap(664): Finished copying files to local storage...
07-08 19:51:48.012: D/WLDroidGap(664): no need to check web resource integrity
07-08 19:51:48.102: D/CordovaWebView(664): >>> loadUrl(file:///data/data/com.AccordFintech/files/www/skinLoader.html)
07-08 19:51:48.102: D/PluginManager(664): init()
07-08 19:51:48.112: D/CordovaWebView(664): >>> loadUrlNow()
07-08 19:51:48.592: D/DroidGap(664): onMessage(onPageStarted,file:///data/data/com.AccordFintech/files/www/skinLoader.html)
07-08 19:51:48.792: D/dalvikvm(664): GC_FOR_MALLOC freed 2184 objects / 422000 bytes in 81ms
07-08 19:51:49.592: D/Cordova(664): onPageFinished(file:///data/data/com.AccordFintech/files/www/skinLoader.html)
07-08 19:51:49.592: D/Cordova(664): Trying to fire onNativeReady
07-08 19:51:49.592: D/DroidGap(664): onMessage(onNativeReady,null)
07-08 19:51:49.592: D/DroidGap(664): onMessage(onPageFinished,file:///data/data/com.AccordFintech/files/www/skinLoader.html)
07-08 19:51:50.232: D/CordovaLog(664): Falling back on PROMPT mode since _cordovaNative is missing. Expected for Android 3.2 and lower only.
07-08 19:51:50.232: I/Web Console(664): Falling back on PROMPT mode since _cordovaNative is missing. Expected for Android 3.2 and lower only. at file:///data/data/com.AccordFintech/files/www/default/wlclient/js/cordova.js:908
07-08 19:51:50.322: D/CordovaNetworkManager(664): Connection Type: 3g
07-08 19:51:50.322: D/CordovaNetworkManager(664): Connection Type: 3g
07-08 19:51:50.322: D/DroidGap(664): onMessage(networkconnection,3g)
07-08 19:51:50.352: D/DroidGap(664): onMessage(spinner,stop)
07-08 19:51:50.492: D/CordovaWebView(664): >>> loadUrl(file:///data/data/com.AccordFintech/files/www/default/AccordFintech.html)
07-08 19:51:50.492: D/PluginManager(664): init()
07-08 19:51:50.512: D/CordovaWebView(664): >>> loadUrlNow()
07-08 19:51:50.532: D/DroidGap(664): onMessage(onPageStarted,file:///data/data/com.AccordFintech/files/www/default/AccordFintech.html)
07-08 19:51:50.733: D/dalvikvm(664): GC_FOR_MALLOC freed 2859 objects / 241376 bytes in 121ms
07-08 19:51:50.912: D/dalvikvm(664): GC_FOR_MALLOC freed 1560 objects / 135728 bytes in 54ms
07-08 19:51:51.622: D/DroidGap(664): onMessage(spinner,stop)
07-08 19:51:53.622: D/dalvikvm(664): GC_FOR_MALLOC freed 1225 objects / 370792 bytes in 153ms
07-08 19:51:56.991: D/Cordova(664): onPageFinished(file:///data/data/com.AccordFintech/files/www/default/AccordFintech.html)
07-08 19:51:56.991: D/Cordova(664): Trying to fire onNativeReady
07-08 19:51:56.991: D/DroidGap(664): onMessage(onNativeReady,null)
07-08 19:51:56.991: D/DroidGap(664): onMessage(onPageFinished,file:///data/data/com.AccordFintech/files/www/default/AccordFintech.html)
07-08 19:51:57.641: D/CordovaLog(664): Falling back on PROMPT mode since _cordovaNative is missing. Expected for Android 3.2 and lower only.
07-08 19:51:57.641: I/Web Console(664): Falling back on PROMPT mode since _cordovaNative is missing. Expected for Android 3.2 and lower only. at file:///data/data/com.AccordFintech/files/www/default/wlclient/js/cordova.js:908
07-08 19:51:57.702: D/CordovaNetworkManager(664): Connection Type: 3g
07-08 19:51:57.721: D/CordovaNetworkManager(664): Connection Type: 3g
07-08 19:51:57.721: D/DroidGap(664): onMessage(networkconnection,3g)
07-08 19:51:57.741: D/DroidGap(664): onMessage(spinner,stop)
07-08 19:51:57.911: I/dalvikvm(664): Could not find method java.util.Calendar.getDisplayNames, referenced from method org.apache.cordova.Globalization.getDateNames
07-08 19:51:57.911: W/dalvikvm(664): VFY: unable to resolve virtual method 10795: Ljava/util/Calendar;.getDisplayNames (IILjava/util/Locale;)Ljava/util/Map;
07-08 19:51:57.911: D/dalvikvm(664): VFY: replacing opcode 0x74 at 0x009d
07-08 19:51:57.911: I/dalvikvm(664): Could not find method java.util.Calendar.getDisplayNames, referenced from method org.apache.cordova.Globalization.getDateNames
07-08 19:51:57.911: W/dalvikvm(664): VFY: unable to resolve virtual method 10795: Ljava/util/Calendar;.getDisplayNames (IILjava/util/Locale;)Ljava/util/Map;
07-08 19:51:57.911: D/dalvikvm(664): VFY: replacing opcode 0x74 at 0x00d0
07-08 19:51:57.911: I/dalvikvm(664): Could not find method java.util.Calendar.getDisplayNames, referenced from method org.apache.cordova.Globalization.getDateNames
07-08 19:51:57.911: W/dalvikvm(664): VFY: unable to resolve virtual method 10795: Ljava/util/Calendar;.getDisplayNames (IILjava/util/Locale;)Ljava/util/Map;
07-08 19:51:57.922: D/dalvikvm(664): VFY: replacing opcode 0x74 at 0x00e3
07-08 19:51:57.922: I/dalvikvm(664): Could not find method java.util.Calendar.getDisplayNames, referenced from method org.apache.cordova.Globalization.getDateNames
07-08 19:51:57.922: W/dalvikvm(664): VFY: unable to resolve virtual method 10795: Ljava/util/Calendar;.getDisplayNames (IILjava/util/Locale;)Ljava/util/Map;
07-08 19:51:57.922: D/dalvikvm(664): VFY: replacing opcode 0x74 at 0x00f2
07-08 19:51:57.922: D/dalvikvm(664): VFY: dead code 0x00a0-00b8 in Lorg/apache/cordova/Globalization;.getDateNames (Lorg/json/JSONArray;)Lorg/json/JSONObject;
07-08 19:51:57.922: D/dalvikvm(664): VFY: dead code 0x00d3-00d4 in Lorg/apache/cordova/Globalization;.getDateNames (Lorg/json/JSONArray;)Lorg/json/JSONObject;
07-08 19:51:57.922: D/dalvikvm(664): VFY: dead code 0x00e6-00e7 in Lorg/apache/cordova/Globalization;.getDateNames (Lorg/json/JSONArray;)Lorg/json/JSONObject;
07-08 19:51:57.922: D/dalvikvm(664): VFY: dead code 0x00f5-0118 in Lorg/apache/cordova/Globalization;.getDateNames (Lorg/json/JSONArray;)Lorg/json/JSONObject;
07-08 19:51:58.061: D/AccordFintech(664): wlclient init started
07-08 19:51:58.081: D/AccordFintech(664): Read cookies: null
07-08 19:51:58.091: D/AccordFintech(664): CookieMgr read cookies: {}
07-08 19:51:58.261: D/dalvikvm(664): GC_FOR_MALLOC freed 5659 objects / 415552 bytes in 64ms
07-08 19:51:58.541: D/AccordFintech(664): before: app init onSuccess
07-08 19:51:58.621: D/AccordFintech(664): after: app init onSuccess
07-08 19:51:58.621: D/AccordFintech(664): added onPause event handler 
07-08 19:51:58.631: D/AccordFintech(664): wlclient init success
07-08 19:52:03.632: D/CordovaLog(664): Error: scriptError
07-08 19:52:03.632: E/Web Console(664): Error: scriptError at file:///data/data/com.AccordFintech/files/www/default/dojo/dojo.js:21
07-08 19:52:03.632: D/CordovaLog(664): Error: scriptError
07-08 19:52:03.642: E/Web Console(664): Error: scriptError at file:///data/data/com.AccordFintech/files/www/default/dojo/dojo.js:21

Generated Accordfintech.html:

<!DOCTYPE HTML><html>
    <head>
        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <meta charset="UTF-8">
        <title>AccordFintech</title>
        <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
        <meta content="yes" name="apple-mobile-web-app-capable">
        <link href="wlclient/css/wlclient.css" rel="stylesheet">
        <link href="wlclient/css/wlgap.android.css" rel="stylesheet">
        <link href="images/favicon.png" rel="shortcut icon">
        <link href="images/apple-touch-icon.png" rel="apple-touch-icon">
        <link href="css/AccordFintech.css" rel="stylesheet">
        <script>
        // Define WL namespace.
        var WL = WL ? WL : {};
        /**
         * WLClient configuration variables.
         * Values are injected by the deployer that packs the gadget.
         */
        WL.StaticAppProps = {
   "APP_DISPLAY_NAME": "AccordFintech",
   "APP_SERVICES_URL": "\/apps\/services\/",
   "APP_VERSION": "1.0",
   "ENVIRONMENT": "android",
   "LOGIN_DISPLAY_TYPE": "embedded",
   "WORKLIGHT_PLATFORM_VERSION": "6.0.0",
   "WORKLIGHT_ROOT_URL": "\/apps\/services\/api\/AccordFintech\/android\/"
};</script>
        <script src="wlclient/js/cordova.js"></script>
        <script src="common/js/wljq.js"></script>
        <script src="common/js/wl_.min.js"></script>
        <script src="common/js/sjcl.min.js"></script>
        <script src="wlclient/js/analytics/Tealeaf.min.js"></script>
        <script src="common/js/stacktrace.min.js"></script>
        <script src="common/js/base.js"></script>
        <script src="wlclient/js/messages.js"></script>
        <script src="common/js/wlcommon.js"></script>
        <script src="wlclient/js/diagnosticDialog.js"></script>
        <script src="wlclient/js/deviceAuthentication.js"></script>
        <script src="wlclient/js/window.js"></script>
        <script src="wlclient/js/worklight.js"></script>
        <script src="wlclient/js/wlclient.js"></script>
        <script src="wlclient/js/wlfragments.js"></script>
        <script src="wlclient/js/encryptedcache.js"></script>
        <script src="wlclient/js/analytics/analytics.js"></script>
        <script src="wlclient/js/checksum.js"></script>
        <script src="wlclient/js/deviceSensors/triggers.js"></script>
        <script src="wlclient/js/deviceSensors/acquisition.js"></script>
        <script src="wlclient/js/deviceSensors/geo.js"></script>
        <script src="wlclient/js/deviceSensors/wifi.js"></script>
        <script src="wlclient/js/events/eventTransmitter.js"></script>
        <script src="wlclient/js/deviceSensors/bind.js"></script>
        <script src="wlclient/js/deviceSensors/geoUtilities.js"></script>
        <script src="wlclient/js/challengeHandlers/antiXSRFChallengeHandler.js"></script>
        <script src="wlclient/js/challengeHandlers/authenticityChallengeHandler.js"></script>
        <script src="wlclient/js/challengeHandlers/deviceAuthAutoProvisioningChallengeHandler.js"></script>
        <script src="wlclient/js/challengeHandlers/deviceAuthNoProvisioningChallengeHandler.js"></script>
        <script src="wlclient/js/challengeHandlers/remoteDisableChallengeHandler.js"></script>
        <script src="wlclient/js/deviceSensors/ExtendedGeolocation.js"></script>
        <script src="wlclient/js/features_stubs/jsonstore_stub.js"></script>
        <script src="wlclient/js/wlgap.android.js"></script>
        <script>window.$ = window.jQuery = WLJQ;</script>
            <script src="dojox/mobile/deviceTheme.js" type="text/javascript"></script>
            <script type="text/javascript">
if (typeof dojoConfig == "undefined") {
    var dojoConfig = {};
}
(function(){
    var modules = { dojo: {name: "dojo", location: "http://localhost:53514/dojoLib/Acc/AccordFintech/android/dojo"}, dijit: {name: "dijit", location: "http://localhost:53514/dojoLib/Acc/AccordFintech/android/dijit"}, dojox: {name: "dojox", location: "http://localhost:53514/dojoLib/Acc/AccordFintech/android/dojox"}};
    if (!dojoConfig.packages) {
        dojoConfig.packages = [];
    }
    else {
        for (var i = 0; i < dojoConfig.packages.length; i++) {
            delete modules[dojoConfig.packages[i].name];
        }
    }
    if (dojoConfig.packages.push) {
        for (var module in modules) {
            dojoConfig.packages.push(modules[module]);
        }
    }
})();
</script><script data-dojo-config="isDebug: false, async: true, parseOnLoad: true, mblHideAddressBar: false" src="dojo/dojo.js" type="text/javascript"></script>
    </head>
    <body id="content" style="display: none;">
        <div data-dojo-props="label:'Accord Fintech'" data-dojo-type="dojox.mobile.Heading"></div>
        <div data-dojo-props="selected:true" data-dojo-type="dojox.mobile.ScrollableView" id="view0">
            <div data-dojo-type="dojox.mobile.RoundRectList">
                <div data-dojo-props="label:'About Us',moveTo:'Aboutusview',transition:'flip',dir:'-1'" data-dojo-type="dojox.mobile.ListItem"></div>
                <div data-dojo-props="label:'Database',moveTo:'Databaseview',transition:'flip',dir:'-1'" data-dojo-type="dojox.mobile.ListItem"></div>
                <div data-dojo-props="label:'Software',moveTo:'Softwareview',transition:'flip',dir:'-1'" data-dojo-type="dojox.mobile.ListItem"></div>
                <div data-dojo-props="label:'Research',moveTo:'Researchview',transition:'flip',dir:'-1'" data-dojo-type="dojox.mobile.ListItem"></div>
                <div data-dojo-props="label:'Products',moveTo:'productsview',transition:'flip',dir:'-1'" data-dojo-type="dojox.mobile.ListItem"></div>
                <div data-dojo-props="label:'Contact Us',moveTo:'Contactusview',transition:'flip',dir:'-1'" data-dojo-type="dojox.mobile.ListItem"></div>
            </div>
        <!--application UI goes here-->
        </div>
        <div data-dojo-type="dojox.mobile.View" id="Aboutusview"></div>
        <div data-dojo-type="dojox.mobile.View" id="Softwareview"></div>
        <div data-dojo-type="dojox.mobile.View" id="Databaseview"></div>
        <div data-dojo-type="dojox.mobile.View" id="Researchview"></div>
        <div data-dojo-type="dojox.mobile.View" id="productsview"></div>
        <div data-dojo-type="dojox.mobile.View" id="Contactusview"></div>
        <script src="js/initOptions.js"></script>
            <script src="js/AccordFintech.js"></script>
            <script src="js/messages.js"></script>
    </body>
</html>

.js文件:

function wlCommonInit(){
    require([ "layers/core-web-layer", "layers/mobile-ui-layer" ], dojoInit);
    }
function dojoInit() {
    require([ "dojo/ready", "dojo/parser", "dojox/mobile", "dojo/dom", "dijit/registry", "dojox/mobile/ScrollableView", "dojox/mobile/View", "dojox/mobile/Heading", "dojox/mobile/RoundRectList", "dojox/mobile/ListItem" ], function(ready) {
        ready(function() {
        });
    });
}

enter image description here

enter image description here

3 个答案:

答案 0 :(得分:2)

除了包含*_ROOT.js文件外,您可能还需要从应用程序中删除开发配置。为此,请打开控制台视图(窗口&gt; 显示视图&gt; 其他... &gt; 控制台)。在控制台视图中,单击打开控制台按钮,然后从列表中选择 Dojo库请求。在Dojo Library Requests控制台中,单击查看菜单(工具栏中的三角形),然后取消选中提供库资源。在此之后,构建应用程序环境并将其部署到您的模拟器或设备。

答案 1 :(得分:2)

让我们回顾一下。 在nsand关于控制台视图的帖子中,他试图确定的是你的应用程序是否正在使用6.0中引入的新Dojo库服务器。简而言之,对于6.0,您的应用程序仅在其中包含Dojo Mobile Layers。它需要的任何其他资源,例如翻译,dijit小部件,正在从服务器提供。您可以在6.0信息中心阅读相关信息:http://pic.dhe.ibm.com/infocenter/wrklight/v6r0m0/index.jsp?topic=%2Fcom.ibm.rad.worklight.doc%2Ftopics%2Fcdojolibprjsetupwl.html

如果您按照nsand的步骤取消选中“提供库资源”,则会关闭应用程序对Dojo Library / Server的访问权限。其所有Dojo需求必须由Dojo Mobile层处理,或者您必须将所需资源复制到项目中。

所以 步骤1:选中“提供库资源”,确认您的应用程序在移动浏览器模拟器中正常工作。如果控制台日志显示从服务器提供的资源,则必须先将这些资源复制到应用程序,然后再部署到AVD或设备

步骤2:在您认为项目中包含所有Dojo /资源后,取消选中提供库资源并在MBS中再次测试它。如果它在MBS中失败,则库/服务器中的应用程序中缺少某些内容。您可以查看提供库资源并重新测试,看它是否显示了它是什么。并非所有资源都显示出来,例如如果有一个丢失的CSS文件。

如果有助于您找到问题,请告诉我们。如果取消选中提供库资源并且它在MBS中正常工作但在设备上失败,那么我们需要查看其他地方。

(注意:有一个缺陷阻止您使用带有AVD的Dojo库/服务器或在您的设备上。这将很快修复。尽管如此,使用Dojo Library / Server是一个开发时间概念。如果您转向生产,那么您需要访问所有必要的资源,而无需从Studio中的Dojo Library / Server提供这些资源。

答案 2 :(得分:0)

从Eclipse中的DojoLib项目中,复制文件:

DojoLib \道场\道场\ NLS \核心的Web-layer_ROOT.js
DojoLib \道场\道场\ NLS \移动-UI-layer_ROOT.js

将文件粘贴到www\dojo\nls下的Worklight项目中。

再次尝试运行该项目 可能还需要进行其他更改,但请先查看以上内容是否有效。