Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法从sencha touch生成android骨架项目,因为stbuild已退出,代码为非零:7_Android_Extjs_Sencha Touch 2 - Fatal编程技术网

无法从sencha touch生成android骨架项目,因为stbuild已退出,代码为非零:7

无法从sencha touch生成android骨架项目,因为stbuild已退出,代码为非零:7,android,extjs,sencha-touch-2,Android,Extjs,Sencha Touch 2,我已下载sencha命令v4.0.4.84,sencha touch2.4.0-commercial,并已安装ruby 1.9.3p545,安装sass、compass和ant,并已安装jdk 1.7,并已在我的windows 7 64位计算机上成功设置类路径和路径 PS:我面临的问题是无法从SenchaTouch示例项目生成android框架项目 我尝试过的步骤 提取sencha touch 2.4.0-Commercial,然后在命令提示符下执行以下命令 D:\firstapp\touch-

我已下载sencha命令v4.0.4.84,sencha touch2.4.0-commercial,并已安装ruby 1.9.3p545,安装sass、compass和ant,并已安装jdk 1.7,并已在我的windows 7 64位计算机上成功设置类路径和路径

PS:我面临的问题是无法从SenchaTouch示例项目生成android框架项目

我尝试过的步骤

  • 提取sencha touch 2.4.0-Commercial,然后在命令提示符下执行以下命令

    D:\firstapp\touch-2.4.0-commercial\firstapp>sencha生成应用程序firstapp../firstapp

  • 2) 现在我从senchatouch复制了KitchenSink示例文件,并替换(粘贴)了FirstApp中的内容。

    3) 然后执行以下命令刷新应用程序 sencha应用程序刷新

    4) 然后我创建了keytool,如下所示 C:\ProgramFiles(x86)\Java\jjdk1.7\bin>keytool-genkey-v-keystore D:\firstapp\touch-2.4.0-commercial\firstapp.keystore-alias san-keyalg RSA-keysize 2048-validity 10000

    5) 现在我更新了packager.json的内容,并在那里输入了证书路径、密码、别名和android sdk路径。 Packager.json的内容

    {
        /**
         * @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} bundleSeedId
         * A ten character string which stands before aplication ID in Apple Provisioning Portal
         */
        "bundleSeedId":"KPXFEPZ6EF",
    
        /**
         * @cfg {String} versionString
         * @required
         * This is the version of your application.
         */
        "versionString":"1.0",
    
        /**
         * @cfg {Integer} versionCode
         * @required
         * This is the integer version code of your application, or you can refer to it as a build number. Used only for Android builds.
         */
        "versionCode":"1",
    
        /**
         * @cfg {Object} icon
         * For iOS, please refer to their documentation about icon sizes:
         * https://developer.apple.com/library/ios/documentation/userexperience/conceptual/mobilehig/IconMatrix.html
         *
         * For Android, please refer to the Google Launcher icons guide:
         * http://developer.android.com/design/style/iconography.html
         *
         * iOS 7 uses 60, 76, 120, 152 (29, 58 for the Settings app; 40, 80 for Spotlight search results).
         * iOS 6.1 and earlier uses 57, 72, 114, 144 (29, 58 for the Settings app, for Spotlight search results on iPhone; 50 and 100 for Spotlight search results on iPad).
         * Android uses 36, 48, 72, 96.
         * If you package for Android you can ignore iOS icons and vice versa.
         */
        "icon": {
            "60":"resources/icons/Icon.png",
            "120":"resources/icons/Icon@2x.png",
            "76":"resources/icons/Icon~ipad.png",
            "152":"resources/icons/Icon~ipad@2x.png",
            "36":"resources/icons/Icon-36.png",
            "48":"resources/icons/Icon-48.png",
            "96":"resources/icons/Icon-96.png",
            "57":"resources/icons/Icon-57.png",
            "114":"resources/icons/Icon-57@2x.png",
            "72":"resources/icons/Icon-72.png",
            "144":"resources/icons/Icon-72@2x.png",
            "29":"resources/icons/Icon-Small.png",
            "58":"resources/icons/Icon-Small@2x.png",
            "40":"resources/icons/Icon-Small-40.png",
            "80":"resources/icons/Icon-Small-40@2x.png",
            "50":"resources/icons/Icon-Small-50.png",
            "100":"resources/icons/Icon-Small-50@2x.png"
        },
    
        /**
         * @cfg {String} inputPath
         * @required
         * This is location of your Sencha Touch 2 application, relative to this configuration file.
         */
        "inputPath":"./",
    
        /**
         * @cfg {String} outputPath
         * @required
         * This is where the built application file with be saved. Make sure that output path is not in your input path, you may get into endless recursive copying
         */
        "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":"Android",
    
        /**
         * @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":"D:/firstapp/touch-2.4.0-commercial/testapp/my-release-key.keystore",
    
        /**
         * @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":"san",
    
        /**
         * @cfg {String} certificatePassword
         * The password which was specified during certificate export
         */
        "certificatePassword":"san12345",
    
        /**
         * @cfg {String} provisionProfile
         * The path to the provision profile (APP_NAME.mobileprovision) which you can create and then download from Apple's provisioning portal
         */
        "provisionProfile":"",
    
        /**
         * @cfg {String} URLScheme
         * URL scheme for communication with your application, can be empty if you don't use custom URL scheme in your project.
         */
        "URLScheme":"",
    
        /**
         * @cfg {String} notificationConfiguration
         * Notification configuration for push notifications, can be "debug", "release" or empty if you don't use push notifications in your project.
         */
        "notificationConfiguration":"",
    
        /**
         * @cfg {String} sdkPath
         * This is the path to the Android SDK, if you are developing an Android application.
         */
        "sdkPath":"C:/Android/adt-bundle-windows-x86/sdk",
    
        /**
         * @cfg {String} 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":"17",
    
        /**
        /**
         * @cfg {Array[String]} permissions
         * Array of permissions that is used by an application (Android only) 
         * Full list of permissions for Android application can be found here: http://developer.android.com/reference/android/Manifest.permission.html#ACCESS_CHECKIN_PROPERTIES
         */
        "permissions":[
            "INTERNET",
            "ACCESS_NETWORK_STATE",
            "CAMERA",
            "VIBRATE",
            "ACCESS_FINE_LOCATION",
            "ACCESS_COARSE_LOCATION",
            "CALL_PHONE"
        ],
    
        /**
         * @cfg {Array[String]} orientations
         * @required
         * This is orientations that this application can run.
         */
        "orientations": [
            "portrait",
            "landscapeLeft",
            "landscapeRight",
            "portraitUpsideDown"
        ]
    }
    
    6) 之后,我执行了以下命令 D:\firstapp\touch-2.4.0-commercial\firstapp>sencha app package build packager.json

    我所有的android directortes,即android骨架项目都是按照下图所示创建的

    一旦我出现以下错误,我所有的android文件结构都消失了

    stbuild已退出,错误代码为非零:7

    完整stact跟踪:

    D:\firstapp\touch-2.4.0-commercial\FirstApp>sencha app package build packager.js
    on
    Sencha Cmd v4.0.4.84
    [ERR]
    Created directory D:\firstapp\touch-2.4.0-commercial\build\src\com\mycompany\myA
    ppID
    Added file D:\firstapp\touch-2.4.0-commercial\build\src\com\mycompany\myAppID\ST
    Activity.java
    Created directory D:\firstapp\touch-2.4.0-commercial\build\res
    Created directory D:\firstapp\touch-2.4.0-commercial\build\bin
    Created directory D:\firstapp\touch-2.4.0-commercial\build\libs
    Created directory D:\firstapp\touch-2.4.0-commercial\build\res\values
    Added file D:\firstapp\touch-2.4.0-commercial\build\res\values\strings.xml
    Created directory D:\firstapp\touch-2.4.0-commercial\build\res\layout
    Added file D:\firstapp\touch-2.4.0-commercial\build\res\layout\main.xml
    Created directory D:\firstapp\touch-2.4.0-commercial\build\res\drawable-xhdpi
    Created directory D:\firstapp\touch-2.4.0-commercial\build\res\drawable-hdpi
    Created directory D:\firstapp\touch-2.4.0-commercial\build\res\drawable-mdpi
    Created directory D:\firstapp\touch-2.4.0-commercial\build\res\drawable-ldpi
    Added file D:\firstapp\touch-2.4.0-commercial\build\AndroidManifest.xml
    Added file D:\firstapp\touch-2.4.0-commercial\build\build.xml
    Added file D:\firstapp\touch-2.4.0-commercial\build\proguard-project.txt
    A subdirectory or file ..\build\\\libs\ already exists.
    A subdirectory or file ..\build\\\assets\ already exists.
    Unable to locate tools.jar. Expected to find it in C:\Program Files (x86)\Java\j
    re7\lib\tools.jar
    Buildfile: D:\firstapp\touch-2.4.0-commercial\build\build.xml
    
    -set-mode-check:
    
    -set-debug-files:
    
    -check-env:
     [checkenv] Android SDK Tools Revision 21.0.1
     [checkenv] Installed at C:\Android\adt-bundle-windows-x86\sdk
    
    -setup:
         [echo] Project Name: MyApplication
      [gettype] Project Type: Application
    
    -set-debug-mode:
    
    -debug-obfuscation-check:
    
    -build-setup:
         [echo] Resolving Build Target for MyApplication...
    [gettarget] Project Target:   Android 4.2
    [gettarget] API level:        17
         [echo] ----------
         [echo] Creating output directories if needed...
        [mkdir] Created dir: D:\firstapp\touch-2.4.0-commercial\build\bin\res
        [mkdir] Created dir: D:\firstapp\touch-2.4.0-commercial\build\gen
        [mkdir] Created dir: D:\firstapp\touch-2.4.0-commercial\build\bin\classes
        [mkdir] Created dir: D:\firstapp\touch-2.4.0-commercial\build\bin\dexedLibs
         [echo] ----------
         [echo] Resolving Dependencies for MyApplication...
    [dependency] Library dependencies:
    [dependency] No Libraries
         [echo] ----------
         [echo] Building Libraries with 'debug'...
       [subant] No sub-builds to iterate on
    
    -pre-build:
    
    -code-gen:
    [mergemanifest] Merging AndroidManifest files into one.
    [mergemanifest] Manifest merger disabled. Using project manifest only.
         [echo] Handling aidl files...
         [aidl] No AIDL files to compile.
         [echo] ----------
         [echo] Handling RenderScript files...
    [renderscript] No RenderScript files to compile.
         [echo] ----------
         [echo] Handling Resources...
         [aapt] Generating resource IDs...
         [aapt] D:\firstapp\touch-2.4.0-commercial\build\bin\AndroidManifest.xml:11:
     error: Error: No resource found that matches the given name (at 'icon' with val
    ue '@drawable/icon').
    
    BUILD FAILED
    C:\Android\adt-bundle-windows-x86\sdk\tools\ant\build.xml:647: The following err
    or occurred while executing this line:
    C:\Android\adt-bundle-windows-x86\sdk\tools\ant\build.xml:688: null returned: 1
    
    Total time: 2 seconds
    ""C:/Android/adt-bundle-windows-x86/sdk\tools\android" create project --target a
    ndroid-17 --name MyApplication --activity STActivity --path "../build/\/" --pack
    age com.mycompany.myAppID"
    Could not run ant with error: 1
    Failed to package application
    
    [ERR] stbuild exited with non-zero code : 7
    
    D:\firstapp\touch-2.4.0-commercial\FirstApp> 
    
    更新
    感谢Martin先生指出了正确的方向,我通过在packager.json“iconName”中添加以下行修复了这个问题:“icon.png”,

    构建过程失败,因为它缺少一个图标。这通过以下线路传达:

    [aapt] D:\firstapp\touch-2.4.0-commercial\build\bin\AndroidManifest.xml:11:
     error: Error: No resource found that matches the given name (at 'icon' with val
    ue '@drawable/icon').
    
    我还没有使用Sencha Cmd来构建phonegap项目(我直接使用phonegap),所以我不知道缺少了哪个图标,也不知道您必须在packager.json文件中提供什么名称。 但错误表明aapt正在查找名为“icon.png”的图标。您尚未在packager.json中提供此图标


    确保所有图标都位于资源/图标文件夹中,并且名称正确

    我不明白你的意思,icon.png,我假设你提到的是这些行“100”:“资源/图标/图标小”-50@2x.png在my packager.json中,要更改为“100”:“resources/icon/icon Small-50@2x.png“,请让我知道我的理解是正确的,谢谢你为我指明了正确的方向,我在packager.json中添加了以下行,然后问题就解决了,我得到了apk文件。“iconName”:“icon.png”,我已经用答案更新了问题。