当我尝试使用命令“sencha app build native”从SenchaTouch App生成.apk文件时,我收到以下错误,任何人都可以告诉我解决方案
C:\Users\Zenith\WebstormProjects\SenchaTouch>sencha app build native
Sencha Cmd v4.0.1.45
[INF]
[INF] init-plugin:
[INF]
[INF] cmd-root-plugin.init-properties:
[INF]
[INF] init-properties:
[INF]
[INF] init-sencha-command:
[INF]
[INF] init:
[INF]
[INF] app-build-impl:
[INF]
[INF] -before-init-local:
[INF]
[INF] -init-local:
[INF]
[INF] -after-init-local:
[INF]
[INF] init-local:
[INF]
[INF] find-cmd-in-path:
[INF]
[INF] find-cmd-in-environment:
[INF]
[INF] find-cmd-in-shell:
[INF]
[INF] init-cmd:
[INF] [echo] Using Sencha Cmd from C:\Users\Zenith\bin\Sencha\Cmd\4.0.1.45
for C:\Users\Zenith\WebstormProjects\SenchaTouch\build.xml
[INF]
[INF] -before-init:
[INF]
[INF] -init:
[INF] Initializing Sencha Cmd ant environment
[INF] Adding antlib taskdef for com/sencha/command/compass/ant/antlib.xml
[INF]
[INF] -after-init:
[INF]
[INF] -before-init-defaults:
[INF]
[INF] -init-defaults:
[INF]
[INF] -after-init-defaults:
[INF]
[INF] -init-compiler:
[INF]
[INF] init:
[INF]
[INF] -before-build:
[INF]
[INF] refresh:
[INF]
[INF] -before-refresh:
[INF]
[INF] -init:
[INF]
[INF] -init-compiler:
[INF]
[INF] -detect-app-build-properties:
[INF] Loading app json manifest...
[INF] Loading classpath entry C:\Users\Zenith\WebstormProjects\SenchaTouch\touch
\src
[INF] Loading classpath entry C:\Users\Zenith\WebstormProjects\SenchaTouch\app.j
s
[INF] Loading classpath entry C:\Users\Zenith\WebstormProjects\SenchaTouch\app
[INF] Loading classpath entry C:\Users\Zenith\WebstormProjects\SenchaTouch\build
\temp\native\TouchEx1\sencha-compiler\app
[INF] Loading classpath entry C:\Users\Zenith\WebstormProjects\SenchaTouch\build
\temp\native\TouchEx1\sencha-compiler\app
[INF] Concatenating output to file C:\Users\Zenith\WebstormProjects\SenchaTouch/
build/temp/native/TouchEx1/sencha-compiler/cmd-packages.js
[INF] Adding external reference : @full-page => @overrides
[INF] Loading classpath entry C:\Users\Zenith\WebstormProjects\SenchaTouch\build
\temp\native\TouchEx1\sencha-compiler\cmd-packages.js
[INF] Adding external reference : Ext.util.Observable => C:\Users\Zenith\Webstor
mProjects\SenchaTouch/build/temp/native/TouchEx1/sencha-compiler/cmd-packages.js
[INF]
[INF] -refresh-app:
[INF] Appending concatenated output to file C:\Users\Zenith\WebstormProjects\Sen
chaTouch/bootstrap.js
[INF] Appending concatenated output to file C:\Users\Zenith\WebstormProjects\Sen
chaTouch/bootstrap.js
[INF] Appending concatenated output to file C:\Users\Zenith\WebstormProjects\Sen
chaTouch/bootstrap.js
[INF] Appending concatenated output to file C:\Users\Zenith\WebstormProjects\Sen
chaTouch/bootstrap.js
[INF] Appending concatenated output to file C:\Users\Zenith\WebstormProjects\Sen
chaTouch/bootstrap.js
[INF] Appending content to C:\Users\Zenith\WebstormProjects\SenchaTouch/bootstra
p.json
[INF]
[INF] -refresh:
[INF]
[INF] -after-refresh:
[INF]
[INF] resolve:
[INF]
[INF] js:
[INF]
[INF] -before-js:
[INF]
[INF] -init:
[INF]
[INF] -init-compiler:
[INF]
[INF] -detect-app-build-properties:
[INF]
[INF] -compile-js:
[INF] Compressing data with YuiJavascriptCompressor
[INF] Concatenating output to file C:\Users\Zenith\WebstormProjects\SenchaTouch/
build/native/TouchEx1/app.js
[INF]
[INF] -js:
[INF]
[INF] -after-js:
[INF]
[INF] resources:
[INF]
[INF] -before-resources:
[INF]
[INF] -before-inherit-resources:
[INF]
[INF] -before-copy-resources:
[INF]
[INF] -init:
[INF]
[INF] -init-compiler:
[INF]
[INF] -resources:
[INF] merging resources into C:\Users\Zenith\WebstormProjects\SenchaTouch\build\
native\TouchEx1\resources
[INF] merged 0 resources into C:\Users\Zenith\WebstormProjects\SenchaTouch\build
\native\TouchEx1\resources
[INF] merging resources into C:\Users\Zenith\WebstormProjects\SenchaTouch\build\
native\TouchEx1
[INF] merged 0 resources into C:\Users\Zenith\WebstormProjects\SenchaTouch\build
\native\TouchEx1
[INF]
[INF] -after-copy-resources:
[INF]
[INF] -after-inherit-resources:
[INF]
[INF] -after-resources:
[INF]
[INF] sass:
[INF]
[INF] -before-sass:
[INF]
[INF] -compass-compile-theme-package:
[INF]
[INF] -compass-compile-theme-folders:
[INF]
[INF] -compass-compile-sass-dir:
[INF] executing compass using system installed ruby runtime
identical ../css/app.css
[INF]
[INF] -compass-compile:
[INF]
[INF] -sass:
[INF]
[INF] -after-sass:
[INF]
[INF] slice:
[INF]
[INF] -before-slice:
[INF]
[INF] -slice-images:
[INF]
[INF] -slice:
[INF]
[INF] -after-slice:
[INF]
[INF] page:
[INF]
[INF] -before-page:
[INF]
[INF] -init:
[INF]
[INF] -init-compiler:
[INF]
[INF] -copy-app-resources:
[INF] Copying page resources to C:\Users\Zenith\WebstormProjects\SenchaTouch\bui
ld\native\TouchEx1
[INF] copying C:\Users\Zenith\WebstormProjects\SenchaTouch\resources\css\app.css
to C:\Users\Zenith\WebstormProjects\SenchaTouch\build\native\TouchEx1\resources
\css\app.css
[INF]
[INF] -generate-deltas:
[INF]
[INF] -detect-app-build-properties:
[INF]
[INF] -build-standalone-json-manifest:
[INF] Writing content to C:\Users\Zenith\WebstormProjects\SenchaTouch/build/nati
ve/TouchEx1/app.json
[INF]
[INF] -build-output-page:
[INF]
[INF] -build-output-microload-page:
[INF] Writing content to C:\Users\Zenith\WebstormProjects\SenchaTouch/build/nati
ve/TouchEx1/microloader.js
[INF] Appending content to C:\Users\Zenith\WebstormProjects\SenchaTouch/build/na
tive/TouchEx1/microloader.js
[INF] Building output markup to C:\Users\Zenith\WebstormProjects\SenchaTouch/bui
ld/native/TouchEx1/index.html
[INF] [delete] Deleting: C:\Users\Zenith\WebstormProjects\SenchaTouch\build\n
ative\TouchEx1\microloader.js
[INF]
[INF] -generate-cache-manifest:
[INF]
[INF] -page:
[INF]
[INF] -after-page:
[INF]
[INF] native-package:
[INF]
[INF] -before-native-package:
[INF]
[INF] -native-package-mobile:
[INF] [echo] Building all specified mobile packager configs.
[INF] [echo]
[INF] [echo] Processing Mobile Packager config file
[INF] [echo] config: C:\Users\Zenith\WebstormProjects\SenchaTouch/p
ackager.json
[INF] [echo] inputPath: C:\Users\Zenith\WebstormProjects\SenchaTouc
h/build/native/TouchEx1
[INF] [echo] outputPath: C:\Users\Zenith\WebstormProjects\SenchaTou
ch/build/native-package-mobile/TouchEx1/packager.json
[INF] [echo] Running mobile packager action build on file C:\Users\Zenith\W
ebstormProjects\SenchaTouch/packager.temp.json
[ERR]
Error: Package name 'TouchEx1' contains invalid characters.
A package name must be constitued of two Java identifiers.
Each identifier allowed characters are: a-z A-Z 0-9 _
""C:/Users/Zenith/Desktop/adt-bundle-windows-x86_64-20130522/sdk\tools\android"
create project --target android-8 --name TouchEx1 --activity STActivity --path "
C:\Users\Zenith\WebstormProjects\SenchaTouch/build/native-package-mobile/TouchEx
1/packager.json\/" --package TouchEx1"
Can not open destination file for writing
Failed to copy packager library
Failed to package application
Copy operation failed src=C:\Users\Zenith\bin\Sencha\Cmd\4.0.1.45\stbuild\st-res
/android/\nimblekit.jar dst=C:\Users\Zenith\WebstormProjects\SenchaTouch/build/n
ative-package-mobile/TouchEx1/packager.json\\libs\nimblekit.jar
***
**[ERR]
**[ERR] BUILD FAILED
[ERR] com.sencha.exceptions.ExProcess: stbuild exited with non-zero code : 3
[ERR] at org.apache.tools.ant.Target.performTasks(Targ
[ERR] et.java:413)
[ERR]
[ERR] Total time: 12 seconds
[ERR] The following error occurred while executing this line**:
C:\Users\Zenith\WebstormProjects\SenchaTouch\.sencha\app\build-impl.xml:422: The
following error occurred while executing this line:**
***
C:\Users\Zenith\WebstormProjects\SenchaTouch\.sencha\app\packager-impl.xml:112:
The following error occurred while executing this line:
C:\Users\Zenith\WebstormProjects\SenchaTouch\.sencha\app\packager-impl.xml:114:
The following error occurred while executing this line:
C:\Users\Zenith\WebstormProjects\SenchaTouch\.sencha\app\packager-impl.xml:98: T
he following error occurred while executing this line:
C:\Users\Zenith\WebstormProjects\SenchaTouch\.sencha\app\packager-impl.xml:7: co
m.sencha.exceptions.ExProcess: stbuild exited with non-zero code : 3
packager.json
{
/**
* @cfg 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":"TouchEx1",
/**
* @cfg 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":"TouchEx1",
/**
* @cfg bundleSeedId
* A ten character string which stands before aplication ID in Apple Provisioning Portal
*/
"bundleSeedId":"KPXFEPZ6EF",
/**
* @cfg versionString
* @required
* This is the version of your application.
*/
"versionString":"1.0",
/**
* @cfg 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 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
* iOS uses 57, 72, 114 and 144; Android uses 36, 48 and 72; if you package for Android you can ignore iOS icons and vice verca
*/
"icon": {
"36":"resources/icons/Icon_Android36.png",
"48":"resources/icons/Icon_Android48.png",
"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 inputPath
* @required
* This is location of your Sencha Touch 2 application, relative to this configuration file.
*/
"inputPath":"C:/Users/Zenith/WebstormProjects/SenchaTouch",
/**
* @cfg 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:/Users/Zenith/Desktop/APKS",
/**
* @cfg 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 platform
* @required
* This is the platform where you will be running your application. Available options are:
* - iOSSimulator
* - iOS
* - Android
* - AndroidEmulator
*/
"platform":"Android",
/**
* @cfg 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 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:/Users/Zenith/WebstormProjects/SenchaTouch",
/**
* @cfg 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 certificatePassword
* The password which was specified during certificate export
*/
"certificatePassword":"chanti",
/**
* @cfg provisionProfile
* The path to the provision profile (APP_NAME.mobileprovision) which you can create and then download from Apple's provisioning portal
*/
"provisionProfile":"",
/**
* @cfg notificationConfiguration
* Notification configuration for push notifications, can be "debug", "release" or empty if you don't use push notifications in your project.
*/
"notificationConfiguration":"",
/**
* @cfg sdkPath
* This is the path to the Android SDK, if you are developing an Android application.
*/
"sdkPath":"C:/Users/Zenith/Desktop/adt-bundle-windows-x86_64-20130522/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 {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"
]
}
答案 0 :(得分:0)
我有解决方案,有androidId应该是完全限定名称,我只是更改并成功生成apk文件