直到最近,我一直在使用带有Node 4.1和Java 1.7的PhoneGap CLI 5.0。为了构建Android APK,我使用内容
在platforms / android下创建了build-extras.gradle文件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遇到了这个问题,但现在已经使用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-time等,我怀疑 - 这可能会让一个新的转变变得有价值。但是,这个错误让我感到难过。我希望这里的某个人能够告诉我发生了什么。
我应该提一下,为了更好的衡量,我尝试使用新创建的phonegap项目切换到版本1_8,phonegap create newprj --template=hello-world
答案 0 :(得分:1)
要在Android项目中启用Java 8,您需要使用新的Jack编译器。这是build.gradle的相关更改:
android {
...
defaultConfig {
...
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
有关详细信息,请参阅original guide by Google。
另外,还要考虑Jack编译器从Build Tools版本21.1.1开始可用。您需要将它们更新到至少此版本才能使用它们。请参阅Experimental New Android Tool Chain - Jack and Jill。