嗨,我是sencha touch development的新手。
试图运行
sencha app package运行config.json
将我的Android本机构建应用程序打包到Android模拟器上运行或部署在我的Android设备上。但面临以下问题。
以下是我尝试过的方案没有成功
收到以下错误。
C:\project incubator\sencha-touch-2.1.1-gpl\MyApp>sencha app package run config.json
Sencha Cmd v3.1.2.342
[ERR]
Error: Project folder 'C:\project incubator\sencha-touch-2.1.1-gpl\build' is not empty. Please consider using 'android.bat update' instead.
Created directory C:\project incubator\sencha-touch-2.1.1-gpl\build\src\org\amx\MyApp
Added file C:\project incubator\sencha-touch-2.1.1-gpl\build\src\org\amx\MyApp\STActivity.java
Created directory C:\project incubator\sencha-touch-2.1.1-gpl\build\res
Created directory C:\project incubator\sencha-touch-2.1.1-gpl\build\bin
Created directory C:\project incubator\sencha-touch-2.1.1-gpl\build\libs
Created directory C:\project incubator\sencha-touch-2.1.1-gpl\build\res\values
Added file C:\project incubator\sencha-touch-2.1.1-gpl\build\res\values\strings.xml
Created directory C:\project incubator\sencha-touch-2.1.1-gpl\build\res\layout
Added file C:\project incubator\sencha-touch-2.1.1-gpl\build\res\layout\main.xml
Created directory C:\project incubator\sencha-touch-2.1.1-gpl\build\res\drawable-hdpi
Created directory C:\project incubator\sencha-touch-2.1.1-gpl\build\res\drawable-mdpi
Created directory C:\project incubator\sencha-touch-2.1.1-gpl\build\res\drawable-ldpi
Added file C:\project incubator\sencha-touch-2.1.1-gpl\build\AndroidManifest.xml
Added file C:\project incubator\sencha-touch-2.1.1-gpl\build\build.xml
Added file C:\project incubator\sencha-touch-2.1.1-gpl\build\proguard-project.txt
A subdirectory or file ..\build\\\libs\ already exists.
A subdirectory or file ..\build\\\assets\ already exists.
Buildfile: C:\project incubator\sencha-touch-2.1.1-gpl\build\build.xml
BUILD FAILED
C:\project incubator\sencha-touch-2.1.1-gpl\build\build.xml:90: The following error occurred while executing this line:
C:\Program Files\Android\tools\ant\build.xml:110: java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at org.apache.tools.ant.AntClassLoader.defineClassFromData(AntClassLoader.java:1124)
at org.apache.tools.ant.AntClassLoader.getClassFromStream(AntClassLoader.java:1295)
at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1351)
at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1311)
at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1064)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:242)
at org.apache.tools.ant.taskdefs.Definer.addDefinition(Definer.java:594)
at org.apache.tools.ant.taskdefs.Definer.loadProperties(Definer.java:423)
at org.apache.tools.ant.taskdefs.Definer.execute(Definer.java:279)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:390)
at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:169)
at org.apache.tools.ant.taskdefs.ImportTask.importResource(ImportTask.java:225)
at org.apache.tools.ant.taskdefs.ImportTask.execute(ImportTask.java:163)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:390)
at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:180)
at org.apache.tools.ant.ProjectHelper.configureProject(ProjectHelper.java:82)
at org.apache.tools.ant.Main.runBuild(Main.java:793)
at org.apache.tools.ant.Main.startAnt(Main.java:217)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Total time: 2 seconds
rm failed for /data/local/tmp/MyApp.apk, No such file or directory
Length is zd -- too small
file '../build/\MyApp.apk' is not a valid zip file
""C:/Program Files/Android\tools\android" create project --target android-15 --name MyApp --activity STActivity --path "../build/\/" --package org.amx.MyApp"
Can not open source file
""C:/Program Files/Android\platform-tools\adb" install -r "../build/\MyApp.apk""
Could not install application
Failed to run packaged application
Copy operation failed src=../build/\\bin\MyApp-debug.apk dst=../build/\\MyApp.apk
[ERR] stbuild exited with non-zero code : 7
C:\project incubator\sencha-touch-2.1.1-gpl\MyApp>
CMD提示只显示了sencha cmd工具版本,注意甚至没有提示返回,等待几个小时,在构建文件夹中存在0 kb .apk文件。
使用
检查了已安装的api版本android.bat列出目标
命令,配置并运行相同的API。
对此问题有任何帮助
以下是用于Windows XP SP3机器上的sencha touch开发的应用程序/ sdk。
创建了一个骨架项目,尝试在Crome浏览器中运行正常。
根据建议的文档创建了一个应用程序配置json文件。
以下是为我的应用程序更新的文件。
{
"applicationName":"MyApp",
"applicationId":"org.amx.MyApp",
"bundleSeedId":"KPXFEPZ6EF",
"versionString":"1.0",
"versionCode":"1",
"icon": {
"36":"resources/icons/Icon.png",
"48":"resources/icons/Icon.png",
"72":"resources/icons/Icon.png"
},
"inputPath":"./",
"outputPath":"../build/",
"configuration":"Debug",
"platform":"Android",
"deviceType":"Universal",
"certificatePath":"../../my-release-key.keystore",
"certificateAlias":"",
"certificatePassword":"abc123",
"provisionProfile":"",
"URLScheme":"",
"notificationConfiguration":"",
"sdkPath":"C:/Program Files/Android/android-sdk",
"androidAPILevel":"16",
"permissions":[
"INTERNET",
"ACCESS_NETWORK_STATE",
"CAMERA",
"VIBRATE",
"ACCESS_FINE_LOCATION",
"ACCESS_COARSE_LOCATION",
"CALL_PHONE"
],
"orientations": [
"portrait",
"landscapeLeft",
"landscapeRight",
"portraitUpsideDown"
]
}
请帮助。尝试在sencha toch论坛上发布相同内容甚至没有发布。让我知道所需的任何信息都会发表评论。过去两周一直坚持这个问题。
答案 0 :(得分:0)
终于得到了解决方案。解决方案在发布的问题本身。由于挫折没有观察到简单的问题。
问题是糟糕的java路径设置
由于使用eclipse构建android应用程序从未觉得需要检查类路径,因为应用程序将由IDE构建。但Sencha CMD构建过程使用依赖于类路径的命令行参数。 因此,将机器的环境变量中的类路径,路径和JAVA_HOME设置为jdk 1.6,以解决问题。
第一条线索在行
C:/ Program Files / Android \ tools \ android"创建项目--target android-15 --name MyApp --activity STActivity --path" ../ build //" --package org.amx.MyApp
sencha cmd使用现有的android sdk安装在sdk / tools / android.bat文件上运行命令。上面的命令使用config .json文件中的设置创建android骨架项目。由于我使用Android很长一段时间,我甚至怀疑安装android sdk已经流氓。所以从谷歌安装了较新的sdk安装。但是在单例项目项目中运行build.xml文件会产生相同的结果。
java.lang.UnsupportedClassVersionError:.class中的错误版本号 文件 在java.lang.ClassLoader.defineClass1(本机方法)
从堆栈溢出中再搜索一下,返回solution。