我正在使用 weinre 对在Mac OS X(最新版本)上运行的Android模拟器上执行的应用程序进行远程调试。
上下文(最终必要):
我目前使用的AVD(Android虚拟设备)是:
目标:Android 2.3.3 - API级别10
Javascript Framework :Dojo, v1.9
实际问题:
我尝试从远程控制台初始化方法( weinre ),但是一旦我开始调用它,我得到相应的输出:
第一次方法调用:
SyntaxError: Parse error
第二次方法调用:
TypeError: Result of expression 'lang' [undefined] is not an object.
第3次方法通话:
undefined
从这一点开始,我试图调用的方法总是会提供未定义的输出。
我知道第一个错误是因为我定义了一个数组。即:
var requiredLibraries = ["app/webpage",
"dojo/_base/window",
"dojo/dom-construct",
"dijit/registry",
"dojo/on",
"dojox/mobile",
"dojox/mobile/deviceTheme",
"dojox/mobile/compat",
"dojo/domReady!"
];
但我根本没有看到任何解析错误。事实上,我已经通过jslint传递了我的代码并且它有效。
我已尝试其他Android设备,其他版本,即版本4.4 ,但徒劳无功。每次我得到相同的结果。
注意:仅适用于Android设备/ Android模拟器。在桌面浏览器或iOS设备/ iOS模拟器上测试应用程序时,我没有遇到任何问题。
任何提示?
答案 0 :(得分:1)
您首先需要在DOJO常见问题解答中解决这一问题:
在使用时,我似乎无法在Android设备上运行Dojo Mobile页面 像PhoneGap这样的图书馆,我做错了什么?
Android WebKit浏览器实现中存在一个已知错误 不允许以下划线'_'开头的文件 从本地文件系统加载(例如,在使用Dojo Mobile时) 与PhoneGap结合创建本机应用程序)。绕过这条路 问题是要创建文件的内置版本(您需要这样做 无论如何,这是为了表现。)
常见问题解答:http://dojotoolkit.org/reference-guide/1.9/dojox/mobile/faq.html
确认此问题:
http://developer.appcelerator.com/question/144171/using-dojo-mobile-and-filenames-with-
按照此构建教程创建DOJO应用程序的单个javascript文件构建,该文件将取消以下划线开头的单个javascript文件:
http://dojotoolkit.org/documentation/tutorials/1.9/build/
假设你可以构建DOJO app ok,那么你需要按照这个来与Phonegap / Cordova集成:
https://dojotoolkit.org/documentation/tutorials/1.9/dojox_app/contactsCordova/
* 如果您在使用deviceTheme.js时遇到问题,请在页面中间注意它如何显示您的Phonegap / Cordova index.html文件应该是什么样子:
// Your device Theme
<script src="{path_to_dojox}/dojox/mobile/deviceTheme.js"></script>
// Loads cordova
<script src="cordova.js"></script>
// Loads DOJO
<script src="{path_to_dojo}/dojo/dojo.js" data-dojo-config="app: {debugApp: 1}, async: true"></script>
// DOJO then uses this require statement to load your built DOJO app
<script>
require(["contactsApp/contacts"]);
</script>
在离线前帮助@nffdiogosilva完成这项工作的原创想法
这主要是一个调试问题,您需要隔离移动部件并逐步验证您的假设。确保没有任何更基本的假设工作实际上没有被破坏。也许是dojo.js库或者dojo app对象的初始实例化?另外,您使用的是其他任何JavaScript库吗?
在我们的另一个帖子中,我提到了我如何使用Weinre来确定我的Sencha app对象不会在Android 2.3上加载。 Sencha库本身似乎加载正常,但是创建我的Sencha应用程序对象的样板调用会挂起一点,然后不加载,我的UI根本没有渲染(白屏!)。我通过做一些增量的console.log跟踪以及评论我的一些不同的javascript包括直到问题变得清晰来解决这个问题。它在Android 4+上运行良好,但在这种情况下可能是一个不同的问题。