0

如何在 json 文件中正确设置 unicode 字符串来构建 sencha touch 应用程序?

这个假设可能是错误的,它不会为任何变体编译: "\u0423\u0413\u041F""%u0423%u0413%u041F"。如果我使用拉丁字符(“UGP”),那么它会正常构建。

编译器日志:

    c:\all\trunk\mobile\UGP>sencha --debug package build config.json
Sencha Cmd v3.0.0.250
[DBG]           using path C:\Sencha\Cmd\3.0.0.250\stbuild;C:\Sencha\Cmd\3.0.0.2
50\stbuild\bin;C:\Program Files\pkzip;C:\Users\sergzach\Desktop\adt-bundle-windo
ws-x86\adt-bundle-windows-x86\sdk\platform-tools;C:\Program Files\Java\jdk1.7.0_
09\bin;C:\Sencha\Cmd\3.0.0.250;C:\SenchaSDKTools-2.0.0-beta3;C:\SenchaSDKTools-2
.0.0-beta3\bin;C:\SenchaSDKTools-2.0.0-beta3\compat\jsbuilder;C:\SenchaSDKTools-
2.0.0-beta3\compat\scripts;C:\Users\sergzach\Desktop\adt-bundle-windows-x86\adt-
bundle-windows-x86\sdk\tools;C:\all\sencha-projects;C:\Program Files\AMD APP\bin
\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32
\WindowsPowerShell\v1.0\;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;C
:\Program Files\TortoiseSVN\bin;C:\Program Files\PostgreSQL\8.4\bin\;C:\Python26
\Scripts;C:\Python26;C:\Program Files\ImageMagick-6.6.7-Q16;C:\all\start;C:\all\
trunk\www\cometd\cometd-twisted;C:\Program Files\nodejs\;C:\Users\sergzach\AppDa
ta\Roaming\npm\
[DBG]           executable located at C:\Sencha\Cmd\3.0.0.250\stbuild\stbuild.ex
e
[DBG]           using workding directory .
Error: Project name '╨г╨У╨Я' contains invalid characters.
Allowed characters are: a-z A-Z 0-9 _
""C:/Users/sergzach/Desktop/adt-bundle-windows-x86/adt-bundle-windows-x86/sdk\to
ols\android" create project --target android-10 --name ╨г╨У╨Я --activity STActiv
ity --path "C:/all/trunk/mobile/UGP-out\/" --package com.ergosolo.firstApp"
Can not open destination file for writing
Failed to copy packager library
Failed to package application
Copy operation failed src=C:\Sencha\Cmd\3.0.0.250\stbuild\st-res/android/\nimble
kit.jar dst=C:/all/trunk/mobile/UGP-out\\libs\nimblekit.jar
[DBG]           exit code was : 3
[DBG]           exit code was : 3
[ERR]
Error: Project name '??????' contains invalid characters.
Allowed characters are: a-z A-Z 0-9 _
""C:/Users/sergzach/Desktop/adt-bundle-windows-x86/adt-bundle-windows-x86/sdk\to
ols\android" create project --target android-10 --name ?????? --activity STActiv
ity --path "C:/all/trunk/mobile/UGP-out\/" --package com.ergosolo.firstApp"
Can not open destination file for writing
Failed to copy packager library
Failed to package application
Copy operation failed src=C:\Sencha\Cmd\3.0.0.250\stbuild\st-res/android/\nimble
kit.jar dst=C:/all/trunk/mobile/UGP-out\\libs\nimblekit.jar

[ERR]           stbuild exited with non-zero code : 3

com.sencha.exceptions.ExProcess: stbuild exited with non-zero code : 3
        at com.sencha.command.pkg.PackageCommands$BasePackageCommand.execute(Pac
kageCommands.java:49)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at com.sencha.cli.Command.dispatch(Command.java:78)
        at com.sencha.cli.Commands.dispatch(Commands.java:49)
        at com.sencha.cli.Commands.dispatch(Commands.java:49)
        at com.sencha.command.Sencha.main(Sencha.java:71)

完整的config.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":"\u0423\u0413\u041F",

"iconName": "C:/all/trunk/mobile/UGP/resources/icons/Icon.png",

/**
 * @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.ergosolo.firstApp",

/**
 * @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/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
 */
"icon": {
    "57":"resources/icons/Icon.png",
    "72":"resources/icons/Icon~ipad.png",
    "114":"resources/icons/Icon@2x.png",
    "144":"resources/icons/Icon~ipad@2x.png"
},

/**
 * @cfg {String} inputPath
 * @required
 * This is location of your Sencha Touch 2 application, relative to this configuration file.
 */
"inputPath":"C:/all/trunk/mobile/UGP",

/**
 * @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":"C:/all/trunk/mobile/UGP-out",

/**
 * @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":"C:/all/GS/my-debug-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.
 */
"certificatePassword":"",
/**
 * @cfg {String} certificatePassword
 * The password which was specified during certificate export
 */
"provisionProfile":"",
/**
 * @cfg {String} provisionProfile
 * The path to the provision profile (APP_NAME.mobileprovision) which you can create and then download from Apple's provisioning portal
 */
"sdkPath":"C:/Users/sergzach/Desktop/adt-bundle-windows-x86/adt-bundle-windows-x86/sdk",

/**
 * @cfg {String} sdkPath
 * This is the path to the Android SDK, if you are developing an Android application.
 */

/**
/**
 * @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":"10",

/**
/**
 * @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":["android.permission.INTERNET"],

/**
 * @cfg {Array[String]} orientations
 * @required
 * This is orientations that this application can run.
 */
"orientations": [
    "portrait",
    "landscapeLeft",
    "landscapeRight",
    "portraitUpsideDown"
]

}

4

0 回答 0