簡體   English   中英

Cordova Android的`create`腳本無法創建新項目 - 使用java / ant配置時出錯

[英]`create` script for Cordova Android fails to create new project - errors with java/ant configuration

我正在嘗試使用Cordova / Phonegap創建一個新的Android項目。

我已經下載了cordova-2.9.0和適用於Mac的ADT Bundle。

我將ADT提取到〜/ Developer / Android,並將其添加到我的PATH中:

export PATH="$HOME/Development/Android/sdk/tools:$PATH"
export PATH="$HOME/Development/Android/sdk/platform-tools:$PATH"

然后我嘗試運行cordova create腳本,但它失敗了:

→  bin  sudo ./create ~/Projects/myproject/cordova-android com.mydomain.myproject myproject
Password:

BUILD FAILED
/Users/asgeo1/Development/Android/sdk/tools/ant/build.xml:714: The following error occurred while executing this line:
/Users/asgeo1/Development/Android/sdk/tools/ant/build.xml:728: Compile failed; see the compiler error output for details.

Total time: 1 second
An unexpected error occurred: ant jar > /dev/null exited with 1
Deleting project...

不是很有幫助。 所以我編輯Cordova create腳本,以便輸出更多信息。

    # COMMENTED OUT piping to /dev/null:
    #
    # compile cordova.js and cordova.jar
    pushd "$BUILD_PATH"/framework # > /dev/null
    ant jar #> /dev/null
    popd  #> /dev/null

然后我重新運行了create腳本:

→  bin  sudo ./create ~/Projects/myproject/cordova-android com.mydomain.myproject myproject
~/Downloads/cordova-2.9.0/cordova-android/framework ~/Downloads/cordova-2.9.0/cordova-android/bin
Buildfile: /Users/asgeo1/Downloads/cordova-2.9.0/cordova-android/framework/build.xml

-pre-build:

-check-env:
 [checkenv] Android SDK Tools Revision 22.0.5
 [checkenv] Installed at /Users/asgeo1/Development/Android/sdk

-setup:
     [echo] Project Name: Cordova
  [gettype] Project Type: Android Library

-build-setup:
[getbuildtools] Using latest Build Tools: 18.0.1
     [echo] Resolving Build Target for Cordova...
[gettarget] Project Target:   Android 4.3
[gettarget] API level:        18
     [echo] ----------
     [echo] Creating output directories if needed...
     [echo] ----------
     [echo] Resolving Dependencies for Cordova...
[dependency] Library dependencies:
[dependency] No Libraries
     [echo] ----------
     [echo] Building Libraries with '${build.target}'...
   [subant] No sub-builds to iterate on

-code-gen:
[mergemanifest] No changes in the AndroidManifest files.
     [echo] Handling aidl files...
     [aidl] No AIDL files to compile.
     [echo] ----------
     [echo] Handling RenderScript files...
[renderscript] No RenderScript files to compile.
     [echo] ----------
     [echo] Handling Resources...
     [aapt] No changed resources. R.java and Manifest.java untouched.
     [echo] ----------
     [echo] Handling BuildConfig class...
[buildconfig] Generating BuildConfig class.

-pre-compile:

-compile:
    [javac] Compiling 104 source files to /Users/asgeo1/Downloads/cordova-2.9.0/cordova-android/framework/bin/classes
    [javac] /Users/asgeo1/Downloads/cordova-2.9.0/cordova-android/framework/src/com/squareup/okhttp/Connection.java:171: method does not override a method from its superclass
    [javac]   @Override public void close() throws IOException {
    [javac]    ^

對於@override ,還有另外40個錯誤,如上面的錯誤。

從我在谷歌上可以看出,這是因為在jdk 1.6及以上版本中,@ override注釋發生了變化。 (或類似的東西): 為什么javac在@Override注釋上失敗

好的,所以我發現ant的Android SDK配置在一個名為build.xml的文件中。 很低,它有一些Java 1.5的設置:

<property name="java.target" value="1.5" />
<property name="java.source" value="1.5" />

如果我將這些值更改為1.6或1.7,重新運行Cordova create腳本時會出現java錯誤:

-compile:
    [javac] Compiling 104 source files to /Users/asgeo1/Downloads/cordova-2.9.0/cordova-android/framework/bin/classes
    [javac] javac: invalid source release: 1.7
    [javac] Usage: javac <options> <source files>

我真的在這里摸不着頭腦。 我不是Java的專家,所以我不知道這里發生了什么。

有誰知道如何在OSX上運行Cordova Android的create腳本?

UPDATE

按照@ cartland的建議,我可以擺脫@Override錯誤。 仍然得到最后一個錯誤:

-compile:
[javac] Compiling 104 source files to /Users/asgeo1/Downloads/cordova-2.9.0/cordova-android/framework/bin/classes
[javac] /Users/asgeo1/Downloads/cordova-2.9.0/cordova-android/framework/src/org/apache/cordova/InAppBrowser.java:523: error: cannot find symbol
[javac]                 settings.setPluginsEnabled(true);
[javac]                         ^
[javac]   symbol:   method setPluginsEnabled(boolean)
[javac]   location: variable settings of type WebSettings
[javac] Note: Some input files use or override a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
[javac] 1 error

我會嘗試找出那是什么 - 但如果有人知道,請發一個答案:)

更新2

我知道第二個錯誤是什么。 它在這里提到: https//developer.motorolaso​​lutions.com/thread/3640

Cordova 2.9.0與Android SDK 18不兼容。我需要將Cordova 3.0.0與Android SDK 18一起使用。(或者反過來將Android SDK降級為17)

我正在運行Ubuntu 10.4 64bit; Oracle JDK 1.7.0_25-b15; Eclipse Kepler; Android SDK 4.3; PhoneGap 3.0。

與您使用CLI完全相同的問題。 將項目加載到Eclipse中工作正常(〜/ .cordova / lib / android / cordova / 3.0.0 / framework / .project)。 由於Eclipse使用它自己的內部Java編譯器,我認為我使用的Oracle安裝存在問題,而且有一些問題。

事實證明,某些應用程序已將早期JRE中的tools.jar(以及其他版本)安裝到Java ext文件夾中。 對我來說似乎很奇怪,javac會在它自己的lib文件夾中加載來自此處的依賴jar,但這似乎是優先順序。 無論如何,我從ext文件夾中刪除了所有文件,一切正常。

  • JDK位置:/ usr / lib / jvm / java-7-oracle /
  • Ext位置:/ usr / java / packages / lib / ext /

我沒有我的Mac檢查位置,但嘗試/ Library / Java / Extensions或〜/ Library / Java / Extensions

我不需要做任何其他更改。 但是在試驗時,我確實嘗試在項目的ant.properties文件中設置以下屬性。 所有工作都是1.5,1.6,1.7。

  • java.target = 1.5
  • java.source = 1.5

實際上,這里的問題似乎是你的java版本和Cordova編譯的jar之間的不兼容性。 要快速修復,最好安裝Java 1.5並將其用於開發。 不要忘記將build.xml中的更改還原為1.5。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM