无法在Windows机器上打包为本机构建的Sencha应用程序

时间:2013-07-10 22:14:54

标签: android windows extjs sencha-touch packaging

嗨,我是sencha touch development的新手。

试图运行

  

sencha app package运行config.json

将我的Android本机构建应用程序打包到Android模拟器上运行或部署在我的Android设备上。但面临以下问题。

以下是我尝试过的方案没有成功

  1. 在配置文件中设置android模拟器,并在运行活动模拟器的情况下运行。
  2. 收到以下错误。

    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>
    
    1. 在配置文件中设置android模拟器并在没有模拟器的情况下运行。
    2. CMD提示只显示了sencha cmd工具版本,注意甚至没有提示返回,等待几个小时,在构建文件夹中存在0 kb .apk文件。

      1. 在配置文件中设置android设备并在没有模拟器的情况下运行。 与案例2相同
      2. 使用

        检查了已安装的api版本
          

        android.bat列出目标

        命令,配置并运行相同的API。

        对此问题有任何帮助

        以下是用于Windows XP SP3机器上的sencha touch开发的应用程序/ sdk。

        1. Sencha Cmd v3.1.2.342
        2. sencha-touch-2.1.1-gpl / sencha-touch-2.2.1-gpl
        3. 安装了Ruby
        4. 安装了ruby的Compass和SASS插件。
        5. jdk1.5.0_11和java home在环境变量中设置。
        6. 安装了Android SDK的Eclipse Juno。证书创建为Android。
        7. 创建了一个骨架项目,尝试在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论坛上发布相同内容甚至没有发布。让我知道所需的任何信息都会发表评论。过去两周一直坚持这个问题。

1 个答案:

答案 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