如何解决Android Phonegap应用程序SyntaxError:解析错误? (黑屏问题)

2024-04-13

我在用着weinre http://people.apache.org/~pmuellr/weinre/docs/latest/能够对在 Mac OS X(最新版本)上运行的 Android 模拟器上执行的应用程序进行远程调试。

上下文(最终必要):

我当前使用的 AVD(Android 虚拟设备)是:

  • Device:Nexus 4(4.7 英寸,768 x 1280:xhdpi)
  • Target:Android 2.3.3 - API 级别 10

    JavaScript 框架: 道场,v1.9 http://dojotoolkit.org

实际问题:

我正在尝试从远程控制台初始化一个方法(weinre),但是一旦我开始调用它,我就会得到相应的输出:

第一个方法调用:

SyntaxError: Parse error

第二种方法调用:

TypeError: Result of expression 'lang' [undefined] is not an object.

第三种方法调用:

undefined

从现在开始,我尝试调用的方法将始终给出一个不明确的 output.

我知道第一个错误是由于我定义的数组而给出的。即:

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 http://jslint.com这是有效的。

我尝试过其他 Android 设备、其他版本,即4.4版本,但徒劳无功。每次我都会得到相同的结果。

NOTE:仅适用于 Android 设备/Android 模拟器。在桌面浏览器或 iOS 设备/iOS 模拟器上测试应用程序时,我遇到了零问题。

有什么提示吗?


您首先需要在 DOJO FAQ 中解决这一点:

使用时我似乎无法在 Android 设备上运行 Dojo Mobile 页面 像 PhoneGap 这样的库,我做错了什么?

Android WebKit 浏览器实现中存在一个已知错误 不允许以下划线“_”字符开头的文件 从本地文件系统加载(例如,当在 与 PhoneGap 结合创建本机应用程序)。解决这个问题的方法 问题是创建文件的构建版本(您需要这样做 无论如何,这都是为了性能)。

FAQ: http://dojotoolkit.org/reference-guide/1.9/dojox/mobile/faq.html http://dojotoolkit.org/reference-guide/1.9/dojox/mobile/faq.html

该问题的确认:

http://developer.appcelerator.com/question/144171/using-dojo-mobile-and-filenames-with- http://developer.appcelerator.com/question/144171/using-dojo-mobile-and-filenames-with-

按照此构建教程创建 DOJO 应用程序的单个 javascript 文件构建,这将消除以下划线开头的各个 javascript 文件:

http://dojotoolkit.org/documentation/tutorials/1.9/build/ http://dojotoolkit.org/documentation/tutorials/1.9/build/

假设您可以构建 DOJO 应用程序,那么您需要按照以下步骤与 Phonegap/Cordova 集成:

https://dojotoolkit.org/documentation/tutorials/1.9/dojox_app/contactsCordova/ 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 应用程序对象的初始实例?另外,你还使用其他 JavaScript 库吗?

在我们的其他线程中,我提到了如何使用 Weinre 来确定我的 Sencha 应用程序对象无法在 Android 2.3 上加载。 Sencha 库本身似乎加载正常,但创建 Sencha 应用程序对象的样板调用会挂起一段时间,然后无法加载,并且我的 UI 根本没有渲染(白屏!)。我通过进行一些增量 console.log 跟踪以及注释掉一些不同的 javascript 包含来解决这个问题,直到问题变得清晰为止。它在 Android 4+ 上运行良好,所以在这种情况下可能是一个不同的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何解决Android Phonegap应用程序SyntaxError:解析错误? (黑屏问题) 的相关文章

  • jQuery 选择器定位具有 id AND class 的元素不起作用

    我有以下事件处理函数 jQuery document on click button submitb function e alert jQuery 包含在 html 文档中 但是 如果我点击 div class submitb Go di
  • Chrome JavaScript 日期构造函数获取 1884 年之前的日期似乎是错误的

    如果我将 1 1 1753 午夜 的 unix 毫秒时间戳值 6847786800000 传递给 Chrome 中的 JavaScript Date 构造函数 则 Chrome 给出的日期看起来非常奇怪 当我使用带有七个参数的 Date 构
  • 将字符串(是一个函数)转换回 Javascript 中的函数

    我在下面将此函数作为字符串 我如何将其转换回函数 我正在从 JQuery 事件中提取事件处理程序 我想将它们存储为字符串 然后将它们转换回来 因为它们将保存在 mySQL 中 function if GActiveClick return
  • Android Google Map V2:如何在单击另一个标记时更改先前单击的标记的图标

    更新 我通过添加 previousMarker 对象解决了性能问题 因此 只有先前单击的标记将被删除并替换为默认图标 但是 当我单击标记时 信息窗口仍然不显示 我有一个地图视图并在上面设置了一些标记 我想要的是 当我单击一个标记时 它将其图
  • 如何避免 TypeScript 中出现虚假的“未使用参数”警告

    我遇到过很多次这种情况 最后决定弄清楚正确的方法是什么 如果我有一个声明方法的抽象父类 然后一些具体子类在其实现中实现真正的逻辑 并且显然使用方法参数 但某些子类不需要在该方法中执行任何操作 因此不要使用方法参数 那些不必执行任何操作的方法
  • 我们如何使用 thymeleaf 绑定对象列表的列表

    我有一个表单 用户可以在其中添加任意数量的内容表对象这也可以包含他想要的列对象 就像在 SQL 中构建表一样 我尝试了下面的代码 但没有任何效果 并且当我尝试绑定两个列表时 表单不再出现 控制器 ModelAttribute page pu
  • 了解应用程序在后台时何时收到 Firebase 消息

    我知道这个标题有同样的问题 但不幸的是它没有得到正确的回答 它被接受了 here https stackoverflow com questions 37711082 how to handle notification when app
  • 使 Recyclerview 固定高度并可滚动

    已解决以下检查答案 所以我试图为我的 Android 应用程序创建评论功能 我想在 recyclerview 中显示评论 然后在 recyclerview 下方有一个按钮和文本视图来添加评论 我想让 recyclerview 具有一定的高度
  • JavaScript 中的最短路径

    几周来我一直在寻找一种在 JavaScript 中计算最短路径的方法 我一直在玩书数据结构和算法作者 格罗纳 Groner 名字恰如其分 https github com loiane javascript datastructs algo
  • 通过 Gradle 和 Android Studio 构建和运行应用程序比通过 Eclipse 慢

    我有一个多项目 10 个模块 每次构建大约需要 20 30 秒 当我在 Android Studio 中按 运行 时 每次都必须等待才能重建应用程序 这非常慢 是否可以在 Android Studio 中自动化构建过程 或者您对如何加快此过
  • onPrepareOptionsMenu 复制 ActionBar 中的项目

    当我使用 onPrepareOptionsMenu 添加菜单项时 该菜单项会在操作栏中复制其自身 我正在使用片段并在主要活动的 ActionBar 中创建初始菜单 如下所示 Override public boolean onCreateO
  • Android ScrollView,检查当前是否滚动

    有没有办法检查标准 ScrollView 当前是否正在滚动 方向是向上还是向下并不重要 我只需要检查它当前是否正在滚动 ScrollView当前形式不提供用于检测滚动事件的回调 有两种解决方法可用 1 Use a ListView并实施On
  • Babel/RequireJS + typeof“RangeError:超出最大调用堆栈大小”

    我有一个非常基本的 JS 错误 我很羞愧无法解决它 我正在使用 ES6 和 Babel 进行开发 并且正在做一些实验 请注意 我在 Babel 中使用了这些参数 presets es2015 plugins transform es2015
  • 在firefox上用js改变表单方法

    我需要使用 javascript jQuery 或纯 更改表单的方法属性 我的表单有 method post 我尝试用以下方法更改它 submit button click function var url input id url val
  • 在数组列表中过滤 Filterable 不取消之前的过滤

    我看过过滤器方法文档 其中显示调用过滤器会取消所有先前未执行的过滤请求 并发布一个稍后将执行的新过滤请求 但我收到的实际回调有些不同 在我的实现中 它不会取消先前的过滤器请求并调用publishResults 最近一次搜索条件后的上一次搜索
  • 有没有办法从画布上清除一个元素而不消除其他元素?

    我正在使用画布构建页面加载器 并使用 es6 类 虽然目前我无法使其正常工作 原因之一是我找不到清除画布的方法进展 到目前为止 这是我的代码 class Loader constructor width height this width
  • 如何调试 Node.js 应用程序?

    如何调试 Node js 服务器应用程序 现在我主要使用警报调试打印语句如下 sys puts sys inspect someVariable 一定有更好的调试方法 我知道谷歌浏览器 http en wikipedia org wiki
  • 错误:模块“html”不提供视图引擎(Express)

    我正在尝试设置一个简单的路由应用程序 但在渲染页面时不断遇到错误 Error Module html does not provide a view engine 奇怪的是我已经在 app js 文件中指定了视图引擎 但仍然收到错误 app
  • Android 的代码覆盖率[重复]

    这个问题在这里已经有答案了 可能的重复 Android测试代码覆盖率 Eclipse https stackoverflow com questions 3282702 android test code coverage eclipse
  • JavaScript 中“键”的类型是什么?

    当我失去焦点并开始思考一个愚蠢的问题时 我遇到了这样的时刻 var a b value b 的类型是什么 我的意思不是 值 的类型 而是标记为 b 的实际键 背景 当我必须创建一个字符串键时 我开始想知道这一点 var a b value

随机推荐

  • 避免使用实体类内的方法定义进行查询时出现查询客户端评估错误

    In a NET核心2 1项目中 我使用 EF Core 和命令模式 使用MediatRSQL Server 数据库上的库 我通过使用以下设置来设置项目以避免客户端查询评估 var phaseOptions new DbContextOpt
  • iPhone 视频缓冲区

    我正在尝试在不越狱 iPhone 的情况下构建一个录像机 我有开发人员许可证 我开始使用PhotoLibrary私有框架 但我只能达到2ftp 太慢 Cycoder 应用程序的 fps 为 15 我认为它使用了不同的方法 我尝试从 Came
  • 尝试在节点集群后面扩展时 phantomjs-node 崩溃

    相关 GitHub 问题 https github com sgentle phantomjs node issues 280 https github com sgentle phantomjs node issues 280 我有一个简
  • `tf.multiply` 和 `*` 有什么区别?

    After import tensorflow kera backend as K 有什么区别tf multiply and 同样 有什么区别K pow x 1 and 1 x 我根据其他一些代码编写了以下自定义指标函数的代码 def di
  • SQL Server 2005:SQL Server 身份验证有多安全?

    如果您使用 SQL Server 身份验证 2005 登录详细信息是否以明文形式通过网络发送 如您所愿 确保安全 您可以相当轻松地配置 SSL 如果您没有受信任的证书 如果您强制加密 SQL Server 可以创建 颁发它自己的自签名证书供
  • 如果我想将单个可变对象传递给函数的多个参数,我该怎么办?

    我用 Rust 编写了一个程序 使用步进电机播放音乐 现在我想添加一些假对象 以便我可以进行自动化测试 但是 我不知道有什么好方法来定义这些假对象 以便我的程序可以实际使用它们 You can 有效的部分 该程序的主循环使用两个特征对象 一
  • 将整数对象的 ArrayList 转换为 int 数组? [复制]

    这个问题在这里已经有答案了 可能的重复 如何将包含 Integers 的 ArrayList 转换为原始 int 数组 https stackoverflow com questions 718554 how to convert an a
  • 当手机处于静音模式时,在后台应用程序上播放声音

    我已经构建了一个计时器应用程序 我遇到的一个问题是当它处于后台时 如果用户关闭音量 我无法敲响计时器 关闭音量或声音也会使通知静音 这是我在后台敲响计时器的方法 我刚买了一块瓷砖 发现了它即使在静音状态下也可以让您的手机响铃 https s
  • 使用 JavaScript 关闭移动浏览器选项卡

    我需要一个本机应用程序来启动带有某些 URL 的浏览器 将用户带到移动网站 在移动网站内部 必须有一个按钮可以关闭浏览器 或向本机应用程序发送任何信号 以便用户返回到本机应用程序 目前我正在尝试关闭窗口 但我认为这不会在所有移动设备上起作用
  • 类型错误:validate_on_submit() 缺少 1 个必需的位置参数:'self'

    我正在使用Flask 网络开发 http shop oreilly com product 0636920031116 do教程和我已经遇到并且正在遇到几个错误 我的简单网络应用程序正在利用 FlaskForm 并尝试验证信息 但遇到了一些
  • 通过 PHP 将 MySQL 转换为 XML

    我的服务器上有一个 MySQL 数据库 我希望通过 PHP 以 XML 形式返回某个表 我见过各种将 XML 传输到 MySQL 的方法 但并不是一种容易遵循的相反方法 我应该怎样做呢 只需提取数据并手动将其形成 XML 文档 使用 DOM
  • 什么是http请求期间的连接超时

    我找到了关于 连接超时 的两种解释 当客户端在 timeout 秒内未向服务器发送任何字节时 服务器将关闭套接字连接 它似乎与 HTTP 标头有一些关系 Connection keep alive 如果在此期间未建立套接字连接 则客户端将在
  • 按比例填充 UIStackView

    我正在使用 Storyboard 创建一个由 UITableView 和底部的 UIView 组成的布局 我正在使用 UIStackView 并垂直播放它们 我希望 UITableView 占据高度的 80 UIView 页脚 占据 20
  • Haskell - 需要为类型类定义 Vector2 实例

    newtype Vector2 a Vector2 a a deriving Show Eq class VectorSpace v where vZero Num a gt v a vSum Num a gt v a gt v a gt
  • 在maven中配置不同文件类型的编码?

    我用maven 资源插件 http maven apache org plugins maven resources plugin faq html过滤我的 Maven 项目中的一些资源 在我的父项目中 我有
  • 强制 applicationCache 重新加载缓存文件

    我使用 HTML5 applicationCache 来存储页面的许多 Javascript CSS 图像等文件 如果我更新其中一个文件 浏览器永远不会重新加载它 我已经尝试过以下方法 在页面加载时调用 applicationCache u
  • 如何从vue3中的“setup”方法中“发出”事件?

    我知道我可以打电话给emit方法从setup方法 但是有没有办法从任何其他函数发出事件而不传递emit设置方法中的方法 不是中的功能 methods选项 但是一个useXXX功能 setup函数有两个参数 第一个是props 第二个是con
  • Marshal.Sizeof() 返回意外值

    我正在调试第三方编写的 C 代码 该项目是一个旧的 C 项目 由承包商用 C 重写 我无法访问该承包商 我编写了原始的 C 版本 问题在于 C 代码获取表示通过 UDP 连接接收的数据的结构的大小 该结构体定义为 StructLayout
  • 是否可以从 Cucumber 功能文件中传递 Java-Enum 作为参数

    我目前正在将selenium与Java一起使用 并希望实现cucumber以使测试脚本更具可读性 目前在将参数传递给 java 方法时面临问题 其中 Enum 应该作为参数 我还想知道在迁移当前框架之前 cucumber java 是否还有
  • 如何解决Android Phonegap应用程序SyntaxError:解析错误? (黑屏问题)

    我在用着weinre http people apache org pmuellr weinre docs latest 能够对在 Mac OS X 最新版本 上运行的 Android 模拟器上执行的应用程序进行远程调试 上下文 最终必要