Java 8 的 Phonegap CLI
Phonegap CLI with Java 8
直到最近,我一直在将 PhoneGap CLI 5.0 与 Node 4.1 和 Java 1.7 一起使用。为了构建 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 进入此应用程序,但现在已升级到 Phonegap CLI 6.3.3节点 4.5 和 Java 1.8。相同的 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 的情况下更好地处理时间等——这很可能使一个新的 t运行sition 变得有价值。但是,这个错误让我很困惑。我希望这里有人可以告诉我发生了什么事。
我应该提一下,我尝试使用新创建的 phonegap 项目 phonegap create newprj --template=hello-world
切换到版本 1_8
要在 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。
直到最近,我一直在将 PhoneGap CLI 5.0 与 Node 4.1 和 Java 1.7 一起使用。为了构建 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 进入此应用程序,但现在已升级到 Phonegap CLI 6.3.3节点 4.5 和 Java 1.8。相同的 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 的情况下更好地处理时间等——这很可能使一个新的 t运行sition 变得有价值。但是,这个错误让我很困惑。我希望这里有人可以告诉我发生了什么事。
我应该提一下,我尝试使用新创建的 phonegap 项目 phonegap create newprj --template=hello-world
要在 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。