首页 > 解决方案 > Gradle错误无法将具有类'java.lang.String'的对象'lib'转换为类'org.gradle.api.file.FileCollection'

问题描述

我收到一个错误,指出

无法在类路径行上将具有类“java.lang.String”的对象“lib”转换为类“org.gradle.api.file.FileCollection”。

我在 gradle 中定义了一个任务:

task convert(type:JavaExec){
    classpath = 'libs/com.ibm.bluez.jcop.eclipse_3.8.3.5/lib'
    main = 'com.sun.javacard.converter.Main'
}

你能告诉我为什么我会收到这个错误吗?

标签: gradletask

解决方案


这很可能是问题所在:

classpath = 'libs/com.ibm.bluez.jcop.eclipse_3.8.3.5/lib'

根据https://docs.gradle.org/current/dsl/org.gradle.api.tasks.JavaExec.html#org.gradle.api.tasks.JavaExec:classpath类路径应该是 FileCollection,而不是 String。

http://www.jonathanpearlin.com/2014/08/12/gradle_javaexec_classpath.html有一些关于自己设置类路径的有用信息——看起来你可能想要设置它files(['libs/com.ibm.bluez.jcop.eclipse_3.8.3.5/lib'])或类似的东西。


推荐阅读