无法使用类'java.util.HashSet'转换对象'[]'

时间:2018-08-27 06:34:01

标签: android gradle compilation java-native-interface

我正在尝试打开Plumble的源代码,将gradle wrapper distributionUrl更改为4.4,然后出现了gradle错误

tasks.withType(Compile) { compileTask -> compileTask.dependsOn copyNativeLibs }

我搜索并发现了gradle 4.4中的“ Compile”未定义,我不得不使用JavaCompiler,但是随后出现了此错误

Could not find method jniDir() for arguments [C:\Users\NP\Desktop\Plumble-Legacy-master\build\native-libs] on task ':packageDebug' of type com.android.build.gradle.tasks.PackageApplication.

所以我替换了

tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask ->
    pkgTask.jniDir new File(buildDir, 'native-libs')
}

tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask ->
    pkgTask.jniFolders = new HashSet<File>()
    pkgTask.jniFolders.add(new File(projectDir, 'native-libs'))
}

但是现在gradle构建中出现了一个新错误:

Cannot cast object '[]' with class 'java.util.HashSet' to class 'org.gradle.api.file.FileCollection' due to: groovy.lang.GroovyRuntimeException: Could not find matching constructor for: org.gradle.api.file.FileCollection()

有人知道我该如何解决? 任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

即使我遇到了这个问题。对我有用的解决方案是 1)使用确切的Maven存储库URL更新构建脚本。 2)在脚本中添加apply plugin:maven。