2016-09-21 23 views
4

直到最近,我一直在使用帶有Node 4.1和Java 1.7的PhoneGap CLI 5.0。構建Android的APK我下創建的平臺集結extras.gradle文件/與內容帶Java 8的Phonegap CLI

ext.postBuildExtras = { 
android { 
compileOptions { 
    sourceCompatibility JavaVersion.VERSION_1_7 
    targetCompatibility JavaVersion.VERSION_1_7 
} 
allprojects { 
    compileOptions { 
     sourceCompatibility = JavaVersion.VERSION_1_7 
     targetCompatibility = JavaVersion.VERSION_1_7 
    } 
} 

} 
} 

這讓我用Java 7.我的應用程序編譯我本來就遇上了這樣的PhoneGap CLI 6.3.1的android約一個星期前,但現在升級到帶有Node 4.5和Java 1.8的Phonegap CLI 6.3.3。同樣的build-extras.gradle文件仍然可以正常工作。不過,我想我會嘗試VERION_1_8只給出錯誤信息

Error: Error code 1 for command: /path/to/app/platforms/android/gradlew 
with args: cdvBuildDebug,-b, /path/to/app/platforms/android/build.gradle, 
-Dorg.gradle.daemon=true,-Pandroid.useDeprecatedNdk=true 

我原本切換到Java 7的,因爲它允許我使用try-with-resources。我敢說Java 8帶來了其他一些好處 - 不用Joda時間就能更好地處理時間,我懷疑 - 這可能會讓一個新的過渡值得。但是,這個錯誤讓我難倒了。我希望這裏的某個人能夠告訴我發生了什麼事。


我應該指出,好措施我想切換到1_8版採用了新創建的PhoneGap項目,phonegap create newprj --template=hello-world

+0

http://phonegap.com/blog/2016/08/03/cli-6_3-now-on-build/但你有6.3.1 –

+0

@JoopEggen - 我幾天前升級到6.3.3。沒有什麼變化 - 仍然是同樣的錯誤。 – DroidOS

回答

1

要在Android的項目使Java 8則需要使用新傑克的編譯器。這是相關變化的build.gradle:

android { 
    ... 
    defaultConfig { 
    ... 
    jackOptions { 
     enabled true 
    } 
    } 
    compileOptions { 
    sourceCompatibility JavaVersion.VERSION_1_8 
    targetCompatibility JavaVersion.VERSION_1_8 
    } 
} 

欲瞭解更多信息,請參閱original guide by Google

此外,還要考慮到從編譯工具21.1.1版開始可以使用Jack編譯器。您需要將它們更新到至少此版本才能使用它們。見Experimental New Android Tool Chain - Jack and Jill

+0

的Android { ... defaultConfig { ... jackOptions { 啓用真正 }} compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }} –

+0

謝謝你把我的權利在這裏跟蹤。在我自己的Phonegap CLI環境中,僅僅這樣做是不夠的 - 它抱怨不知道jackOptions。這將需要調查...... – DroidOS

+0

從這裏引用https://sites.google.com/a/android.com/tools/tech-docs/jackandjill「傑克和吉爾可用Build Build version 21.1.1以及更高版本,通過SDK管理器。「所以,你應該檢查你的構建工具是否更新。 –