在没有Jack的情况下使用Java 8构建Cordova Android

时间:2018-07-15 06:21:24

标签: android cordova java-8 android-jack-and-jill

到目前为止,我一直在混合Cordova Android项目中使用Java 8功能-我有一个自定义插件,其中使用了try-with-resources等Java 8功能。为此,除了确保已安装JDK 8外,我需要做的就是创建一个包含以下内容的platforms/android/build-extras.gradle文件

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

刚刚使用最新版本的Android Studio设置了一个新的笨重的Ubuntu计算机-我使用CLI,但是发现使用Android Studio和SDK Manager是确保正确安装Android平台,工具等的最简单方法-我做了以下

  • 编辑了platforms/android/cordova/lib/builders/GradleBuilder.js,因此它以https\\://services.gradle.org/distributions/gradle-4.4-all.zip的形式发出distributionURL
  • 编辑了platforms/android/build.gradle,因此它使用了最新的Android Gradle插件as specicfied here

    dependencies { classpath 'com.android.tools.build:gradle:3.1.0' }

  • 编辑了platforms/android/build-extras.gradleas suggested here以阅读

    android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }

在这一点上,我觉得我已经做了一切必要的工作来安抚Cordova和Android,因此我继续发布了cordova clean,报告了成功,随后发布了cordova build android,并返回了以下内容

Could not determine the dependencies of task ':compileDebugJavaWithJavac'. 
Could not resolve all task dependencies for configuration 
':debugCompileClasspath'.
Could not resolve project :CordovaLib.
Required by:
project :
> Project : declares a dependency from configuration 'debugCompile' to
configuration 'debug' which is not declared in the descriptor for project 
:CordovaLib.

stacktrace仅包含此

ANDROID_HOME=/home/droidos/Android/Sdk
JAVA_HOME=/usr/lib/jvm/java-8-oracle
Subproject Path: CordovaLib  
The Task.leftShift(Closure) method has been deprecated... .
WARNING: Configuration 'compile' is obsolete...
WARNING: Configuration 'debugCompile' is obsolete...
WARNING: Configuration 'releaseCompile' is obsolete...
publishNonDefault is deprecated and has no effect anymore....

切换回旧样式的build-extras.gradle文件也无法正常工作,并且会按照I don't know Jack的方式返回投诉。

我一定在这里想念什么。从Cordova CLI编译Cordova Android项目以使用Java 8的正确方法是什么?为了完整起见,我应该提到我正在使用Node 8.9.2和Cordova 7.1.0。超出此范围进行升级都会导致我在插件中使用的Duktape Javascript脚本引擎出现问题。

0 个答案:

没有答案