如何在 Android 模拟器上运行 Sencha 应用程序
Posted
技术标签:
【中文标题】如何在 Android 模拟器上运行 Sencha 应用程序【英文标题】:How to run Sencha app on Android emulator 【发布时间】:2012-06-07 10:57:36 【问题描述】:我在命令行中使用下面的 Sencha 命令创建了一个应用程序,如下所示
sencha app create mysenchaApp /path/to/www/mysenchaApp
这给了我如下
Code:
[INFO] Created file C:\path\to\www\mysenchaapp\.senchasdk
[INFO] Created file C:\path\to\www\mysenchaapp\index.html
[INFO] Created file C:\path\to\www\mysenchaapp\app.js
[INFO] Created file C:\path\to\www\mysenchaapp\packager.json
[INFO] Created file C:\path\to\www\mysenchaapp\app.json
[INFO] Created file C:\path\to\www\mysenchaapp\app\view\Main.js
[INFO] Copied dir: C:\path\to\www\mysenchaapp\sdk\src
[INFO] Copied dir: C:\path\to\www\mysenchaapp\sdk\resources
[INFO] Copied dir: C:\path\to\www\mysenchaapp\resources\icons
[INFO] Copied dir: C:\path\to\www\mysenchaapp\resources\loading
[INFO] Copied dir: C:\path\to\www\mysenchaapp\sdk\command
[INFO] Copied file: C:\path\to\www\mysenchaapp\sdk\microloader\development.js
[INFO] Copied file: C:\path\to\www\mysenchaapp\sdk\microloader\testing.js
[INFO] Copied file: C:\path\to\www\mysenchaapp\sdk\microloader\production.js
[INFO] Copied file: C:\path\to\www\mysenchaapp\sdk\version.txt
[INFO] Copied file: C:\path\to\www\mysenchaapp\sdk\sencha-touch.js
[INFO] Copied file: C:\path\to\www\mysenchaapp\sdk\sencha-touch-all.js
[INFO] Created file C:\path\to\www\mysenchaapp\resources\sass\app.scss
[INFO] Created file C:\path\to\www\mysenchaapp\resources\sass\config.rb
[INFO] Copied file: C:\path\to\www\mysenchaapp\resources\css\app.css
然后我修改了 packager.json 文件,使其在模拟器上运行:
Code:
/**
* @cfg String applicationName
* @required
* This is the name of your application, which is displayed on the device when the app is installed. On ios, this should match
* the name of your application in the Apple Provisioning Portal.
*/
"applicationName":"My Application",
/**
* @cfg String applicationId
* This is the name namespace for your application. On IOS, this should match the name of your application in the Apple Provisioning Portal.
*/
"applicationId":"com.mycompany.myAppID",
/**
* @cfg String versionString
* @required
* This is the version of your application.
*/
"versionString":"1.0",
/**
* @cfg String iconName
* This is file name of your icon. This should be in the same directory of this configuration file.
*
* For iOS, please refer to their documentation about icon sizes:
* https://developer.apple.com/library/ios/#documentation/userexperience/conceptual/mobilehig/IconsImages/IconsImages.html
*
* For android, please refer to the Google Launcher icons guide:
* http://developer.android.com/guide/practices/ui_guidelines/icon_design_launcher.html
*/
"iconName":"resources/icons/Icon~ipad.png",
/**
* @cfg String inputPath
* @required
* This is location of your Sencha Touch 2 application, relative to this configuration file.
*/
"inputPath":"build/native",
/**
* @cfg String outputPath
* @required
* This is where the built application file with be saved.
*/
"outputPath":"build/",
/**
* @cfg String configuration
* @required
* This is configuration for your application. `Debug` should always be used unless you are submitting your app to an online
* store - in which case `Release` should be specified.
*/
"configuration":"Debug",
/**
* @cfg String platform
* @required
* This is the platform where you will be running your application. Available options are:
* - iOSSimulator
* - iOS
* - Android
* - AndroidEmulator
*/
"platform":"AndroidEmulator",
/**
* @cfg String deviceType
* @required
* This is device type that your application will be running on.
*
* If you are developing for Android, this is not necessary.
*
* Available options are:
* - iPhone
* - iPad
* - Universal
*/
"deviceType":"Universal",
/**
* @cfg String certificatePath
* This is the location of your certificate.
* This is required when you are developing for Android or you are developing on Windows.
*/
"certificatePath":"/path/to/certificate.file",
/**
* @cfg String certificateAlias
* This is the name of your certificate.
*
* IF you do not specify this on OSX, we will try and automatically find the certificate for you using the applicationId.
*
* This can be just a simple matcher. For example, if your certificate name is "iPhone Developer: Robert Dougan (ABCDEFGHIJ)", you
* can just put "iPhone Developer".
*
* When using a certificatePath on Windows, you do not need to specify this.
*/
"certificateAlias":"",
/**
* @cfg String sdkPath
* This is the path to the Android SDK, if you are developing an Android application.
*/
"sdkPath":"C:\Program Files\Android\android-sdk",
/**
* @cfg androidAPILevel
* This is android API level, the version of Android SDK to use, you can read more about it here: http://developer.android.com/guide/appendix/api-levels.html.
* Be sure to install corresponding platform API in android SDK manager (android_sdk/tools/android)
*/
"androidAPILevel":"8",
/**
* @cfg orientations
* @required
* This is orientations that this application can run.
*/
"orientations": [
"portrait",
"landscapeLeft",
"landscapeRight",
"portraitUpsideDown"
]
然后我在 Sencha 命令行工具上运行以下命令
sencha app build native
Code:
C:\path\to\www\mysenchaapp>sencha app build native
[INFO] Deploying your application to C:\path\to\www\mysenchaapp\build\package
[INFO] Copied sdk/sencha-touch.js
[INFO] Copied app.js
[INFO] Copied resources/css/app.css
[INFO] Copied resources/images
[INFO] Copied resources/icons
[INFO] Copied resources/loading
[INFO] Resolving your application dependencies...
[INFO] Found 139 dependencies. Concatenating all into app.js...
[INFO] Processed sdk/sencha-touch.js
[INFO] Minifying sdk/sencha-touch.js
[INFO] Processed app.js
[INFO] Minifying app.js
[INFO] Minifying resources/css/app.css
[INFO] Minified sdk/sencha-touch.js
[INFO] Minified app.js
[INFO] Minified resources/css/app.css
[INFO] Generated app.json
[INFO] Embedded microloader into index.html
[INFO] Packaging your application as a native app...
C:\path\to\www\mysenchaapp
现在我正在尝试在 android 模拟器上运行这个应用程序,我在 Eclipse 中创建了一个 Android 应用程序。我做不到。
我想知道如何将我的 Sencha 应用程序添加到此 Android 以在模拟器上运行它?
【问题讨论】:
【参考方案1】:只有当你想在 Eclipse 中的 android 模拟器中运行 sencha 应用程序并且你对电话间隙没有异议时,我的回答才是正确的。
如果您使用 eclipse 创建原生 android 应用程序,那么在您的 android 模拟器中运行 sencha 应用程序真的很简单。
我可以告诉你一些简单的步骤。
1)我建议你使用MDS鼓掌电话间隙http://wiki.phonegap.com/w/page/34483744/PhoneGap%20Eclipse%20PlugIn%20for%20Android 随时安装phonegap。
2) 完成安装后,您会在顶部看到电话间隙图标。
3)点击它来创建一个最小的电话间隙项目。
4) 然后你会看到索引文件有不必要的东西。 你可以替换索引文件如下
<!DOCTYPE html>
<html>
<head>
<title>The Sencha Touch List Component</title>
<link rel="stylesheet" href="app.css" type="text/css">
<script type="text/javascript" src="touch/sencha-touch-all.js"></script>
<script type="text/javascript" charset="utf-8">
Ext.Loader.setConfig(
enabled: true,
paths: 'Ext': 'touch/src'
);
</script>
<script type="text/javascript" src="app.js"></script>
</head>
<body></body>
</html>
5)然后在 assets 文件夹中,您可以创建创建 sencha 应用程序所需的文件夹。如 app 文件夹、styles 文件夹、touch 文件夹以及其他必要的东西,如 css 文件和 app.js。
6)你可以通过只在eclipse中查看web浏览器中的index.html文件来检查配置是否正确。
7) 如果没问题,那么你可以在你的安卓模拟器中运行应用程序,就像你为你的原生应用程序做的一样。 如果您想按照自己的方式进行操作,请点击此链接http://docs.sencha.com/touch/2-0/#!/video/native-apis-from-touch
【讨论】:
【参考方案2】:在 packager.json 中将您的平台更改为“Android”。
“AndroidEmulator”不起作用。
这一次我用头撞墙两次!
【讨论】:
以上是关于如何在 Android 模拟器上运行 Sencha 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
在 Android 设备或模拟器上查看时,Sencha 触摸应用程序仍处于蓝色加载屏幕
PhoneGap + Android 模拟器 + Sencha Touch
Sencha Touch 2 文本框在 iOS 7 中的焦点问题