[英]`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.motorolasolutions.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文件夾中刪除了所有文件,一切正常。
我沒有我的Mac檢查位置,但嘗試/ Library / Java / Extensions或〜/ Library / Java / Extensions
我不需要做任何其他更改。 但是在試驗時,我確實嘗試在項目的ant.properties文件中設置以下屬性。 所有工作都是1.5,1.6,1.7。
實際上,這里的問題似乎是你的java版本和Cordova編譯的jar之間的不兼容性。 要快速修復,最好安裝Java 1.5並將其用於開發。 不要忘記將build.xml中的更改還原為1.5。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.