在 Android 设备或模拟器上查看时,Sencha 触摸应用程序仍处于蓝色加载屏幕

Posted

技术标签:

【中文标题】在 Android 设备或模拟器上查看时,Sencha 触摸应用程序仍处于蓝色加载屏幕【英文标题】:Sencha touch app remains on blue loading screen when viewing on Android device or emulator 【发布时间】:2013-10-12 22:00:49 【问题描述】:

我刚刚创建了一个基本的煎茶应用程序

sencha generate app --name androidDemo --path ../demo

我在浏览器中查看了它,一切都很完美。 然后我按照这里的说明进行操作:http://www.sencha.com/blog/android-setup-for-sencha-touch/

并使用 Sencha Cmd 编译了应用程序,当模拟器打开时,我只得到一个蓝色的加载屏幕。

我还尝试在 phonegap 构建站点上使用 phonegap 编译/构建应用程序,构建成功完成,在我的 Android 设备中加载应用程序后,我再次只看到加载页面,它停留在此页面上,应用程序没有发射。

我完全不知道。需要帮助的朋友。

谢谢,

【问题讨论】:

在我的情况下,我必须从 app.json 中删除 cordova.js 并且它有效,但它似乎也破坏了 cordova。我将在 app.json 中更改 cordova 的位置,看看会发生什么。 【参考方案1】:

在您的应用程序代码中可能存在矿工语法错误或其他错误,因此当应用程序在模拟器中运行时检查 log cat 或其他选项在 chrome 中运行或应用程序并检查 控制台日志 .因为加载屏幕会在出现错误时显示为我的表达方式。

【讨论】:

没有错误。正如我所说,我什至尝试了通过 sencha generate app 生成的基本示例应用程序。【参考方案2】:

我遇到了完全相同的问题.. (目前在 Windows 上,顺便说一句)

虽然它不完全是一个解决方案, 我做了一个解决方法(绝望地在模拟器上看到我的应用程序的其余部分): 就是直接使用“adb”命令将它安装到模拟器上。

还没有在 Mac 上试过这个,但我猜这几乎是一样的?

    使用“sencha”cmd 构建应用程序后,打开 cmd/terminal 到构建目录。 -假设您没有更改输出位置,apk 将在您的 此文件夹下的项目根文件夹: "构建\native-package-mobile\MYAPPNAME\packager.json\"

    确保模拟器已经在运行

    在 apk 所在文件夹的命令/终端中运行以下命令:

adb install -r MYAPPNAME.apk

    稍等片刻,应该会说安装成功。 在模拟器中运行应用程序,希望它会超出加载屏幕。

我不知道为什么会发生这个问题。 (昨天才开始修补 android dev/sencha,它似乎正在尽其所能阻止我运行我的应用程序。哈哈)

如果您找到了正确的解决方法,请分享:)

【讨论】:

【参考方案3】:

这通常发生在您构建版本并且没有嵌入所有需要的组件时。

例如,当你使用 ...

Ext.Image

... 在您的代码中。

在没有...的情况下运行

Sencha app build xxx

... Sencha 将从 touch/src 组件文件夹中抓取组件。

但在您构建应用程序时,它无法再引用该文件夹,Sencha 将停止。

请打开控制台并注意如下警告:

[WARN][Anonymous] [Ext.Loader] Synchronously loading 'Ext.MessageBox';
consider adding 'Ext.MessageBox' explicitly as a require of the 
corresponding class

您需要将这些添加到 App.js 的 requires 部分或您使用该项目的类(此处为 Ext.Messagebox)。

另一种找出正在发生的事情的方法是在浏览器中运行构建代码并查看控制台(因此,您可以运行 localhost/myapp/build/package/myapp 而不是 localhost/myapp/index.html /index.html)。

还有另一件事可能发生。这是异步操作的范围。 像这样:

 Ext.defer(function() this.log(‘all good’);, 500);

这不是你的课程范围。 你需要使用:

Ext.defer(function() this.log(‘all good’);, 500, this);

或者你甚至可以使用 ...

Ext.bind()

...将作用域绑定到函数。

【讨论】:

以上是关于在 Android 设备或模拟器上查看时,Sencha 触摸应用程序仍处于蓝色加载屏幕的主要内容,如果未能解决你的问题,请参考以下文章

模拟器或物理设备上的“未安装应用程序”android? [复制]

在 Android Studio 中查看设备上的 SQLite 数据库

启动Android模拟器时,“设备上没有足够的存储空间来存储包”

如何查看 Windows Phone 8 模拟器或运行 Phonegap 应用程序的设备的 javascript 控制台输出

在真实设备模式下模拟或运行时未处理 http 请求,但在模拟器上运行良好

Android shape drawable xml未在设备或模拟器上绘制