2013-07-10 22 views
1

您好我是sencha touch開發的新手。無法在Windows計算機上打包Sencha應用程序以進行android原生構建

試圖運行

sencha app package run config.json

打包我的應用程序的Android原生編譯要麼在Android模擬器上運行,或者我的Android設備上部署。但面臨以下問題。

下面是場景我都沒有成功

  1. 設置在配置文件中的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> 
  1. 在配置文件中設置Android模擬器並沒有仿真器上運行。

的CMD提示僅示出煎茶CMD工具版本並注意到發生甚至沒有提示返回,等待好幾個小時,在生成文件夾一個0 KB .apk文件是否存在。

  1. 將android設備設置爲配置文件並且在沒有模擬器的情況下運行。 同殼體2

已經檢查使用

android.bat list targets

命令,用於在所述已安裝的API版本和運行相同的API。

任何幫助將在此問題上

以下是使用的Windows XP SP3的機器上煎茶觸摸開發應用程序/ SDK。

  1. v3.1.2.342
  2. 煎茶觸摸-2.1.1-GPL /煎茶-觸摸2.2.1- GPL
  3. 紅寶石安裝
  4. 指南針和SASS插件紅寶石安裝煎茶Cmd的。
  5. jdk1.5.0_11和java home設置的環境變量。
  6. 安裝了android SDK的Eclipse Juno。爲android創建證書。

在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論壇上發佈相同的內容甚至沒有發佈。讓我知道任何更多的信息將評論。從最近2周起一直困擾着這個問題。

回答

0

終於找到了解決辦法。解決方案在發佈的問題本身。由於挫折沒有觀察到簡單的問題。

The problem was bad java path setting

由於使用Eclipse來構建Android應用程序從來不覺得需要檢查類路徑,因爲應用程序將由IDE建成。但Sencha CMD構建過程使用依賴於類路徑的命令行參數。 因此,將機器的環境變量中的類路徑,路徑和JAVA_HOME設置爲解決問題的jdk 1.6。

第一條線索是在該行

C:/Program Files/Android\tools\android" create project --target android-15 --name MyApp --activity STActivity --path "../build//" --package org.amx.MyApp

煎茶CMD使用現有的Android SDK安裝的SDK /工具/文件android.bat運行命令。上述命令使用config .json文件中的設置創建了android skeleton項目。由於我長時間使用android,我甚至懷疑android sdk的安裝已經流氓。所以從谷歌安裝了一個更新的sdk安裝。但是在單例項目項目中運行build.xml文件產生了相同的結果。

java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLoader.defineClass1(Native Method)

一些從堆棧溢出搜索,返回solution

相關問題