如何在 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

iPhone设备上的sencha触摸应用程序非常慢

Sencha Touch 2 文本框在 iOS 7 中的焦点问题

如何创建使用在 iPhone 和模拟器中运行的 Jquery mob/Sencha touch 开发的应用程序

Sencha Touch 2:数据视图在 android 模拟器中不可见