'无法为类型 org.gradle.api.internal.tasks.DefaultSourceSetOutput 的主要 类 获取未知 属性 'classesDir'。错误
'Could not get unknown property 'classesDir' for main classes of type org.gradle.api.internal.tasks.DefaultSourceSetOutput.' error
因为我想检查 this 源代码,所以我将它导入 Android Studio。我之前遇到了一些其他错误并修复了它们。这很烦人,现在我有一个新错误。
我收到此错误:
Build file 'C:\Users\hange\Desktop\libgdx-demo-superjumper-master\desktop\build.gradle' line: 18
A problem occurred evaluating project ':desktop'.
> Could not get unknown property 'classesDir' for main classes of type org.gradle.api.internal.tasks.DefaultSourceSetOutput.
* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
我的“desktop\build.gradle”文件如下所示。我在那里指定了第 18 行。
apply plugin: "java"
sourceCompatibility = 1.6
sourceSets.main.java.srcDirs = [ "src/" ]
project.ext.mainClassName = "com.badlogicgames.superjumper.desktop.DesktopLauncher"
project.ext.assetsDir = new File("../android/assets");
task run(dependsOn: classes, type: JavaExec) {
main = project.mainClassName
classpath = sourceSets.main.runtimeClasspath
standardInput = System.in
workingDir = project.assetsDir
ignoreExitValue = true
}
task dist(type: Jar) {
from files(sourceSets.main.output.classesDir) // THIS IS 18th LINE.
from files(sourceSets.main.output.resourcesDir)
from {configurations.compile.collect {zipTree(it)}}
from files(project.assetsDir);
manifest {
attributes 'Main-Class': project.mainClassName
}
}
dist.dependsOn classes
编辑:我的“build.gradle”文件如下所示。但我注意到它无法解析 json 库。错误可能在这里,因为我们正在从互联网上的 json 文件中提取 gradle 版本。
import groovy.json.JsonSlurper // Cannot resolve symbol 'json'
buildscript {
ant.get(src: 'https://libgdx.com/service/versions.json', dest: 'versions.json')
def versionFile = file('versions.json')
def json
if (versionFile.exists()) {
json = new JsonSlurper().parseText(versionFile.text)
} else throw new GradleException("Unable to retrieve latest versions, please check your internet connection")
ext {
gdxVersion = json.libgdxRelease
roboVMVersion = json.robovmVersion
roboVMGradleVersion = json.robovmPluginVersion
androidToolsVersion = json.androidBuildtoolsVersion
androidSDKVersion = json.androidSDKVersion
androidGradleToolsVersion = json.androidGradleToolVersion
gwtVersion = json.gwtVersion
gwtGradleVersion = json.gwtPluginVersion
}
repositories {
mavenLocal()
mavenCentral()
maven { url "https://plugins.gradle.org/m2/" }
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
jcenter()
google()
}
dependencies {
classpath "org.wisepersist:gwt-gradle-plugin:$gwtGradleVersion"
classpath "com.android.tools.build:gradle:$androidGradleToolsVersion"
classpath "com.mobidevelop.robovm:robovm-gradle-plugin:$roboVMGradleVersion"
}
}
我正在发布解决方案,以防其他人遇到同样的问题:
androidToolsVersion, androidSDKVersion, androidGradleToolsVersion, gwtGradleVersion
这 4 个变量是从互联网上的 json 文件中提取的,但是从 json 文件中提取的值可能并不总是正确工作。使变量兼容。
例如,此代码使用 classesDir.The classesDir 属性 已在 Gradle 5.x.
中删除
如果你拉到 Gradle 4.8.1,你会得到错误“最低支持 Gradle 版本是 6.5。当前版本是 4.8.1。”。要修复此错误,您必须将与 4.8.1 gradle 版本兼容的 3.2.x 值分配给 androidGradleToolsVersion 变量。
androidGradleToolsVersion = "3.2.1"
因为我想检查 this 源代码,所以我将它导入 Android Studio。我之前遇到了一些其他错误并修复了它们。这很烦人,现在我有一个新错误。 我收到此错误:
Build file 'C:\Users\hange\Desktop\libgdx-demo-superjumper-master\desktop\build.gradle' line: 18
A problem occurred evaluating project ':desktop'.
> Could not get unknown property 'classesDir' for main classes of type org.gradle.api.internal.tasks.DefaultSourceSetOutput.
* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
我的“desktop\build.gradle”文件如下所示。我在那里指定了第 18 行。
apply plugin: "java"
sourceCompatibility = 1.6
sourceSets.main.java.srcDirs = [ "src/" ]
project.ext.mainClassName = "com.badlogicgames.superjumper.desktop.DesktopLauncher"
project.ext.assetsDir = new File("../android/assets");
task run(dependsOn: classes, type: JavaExec) {
main = project.mainClassName
classpath = sourceSets.main.runtimeClasspath
standardInput = System.in
workingDir = project.assetsDir
ignoreExitValue = true
}
task dist(type: Jar) {
from files(sourceSets.main.output.classesDir) // THIS IS 18th LINE.
from files(sourceSets.main.output.resourcesDir)
from {configurations.compile.collect {zipTree(it)}}
from files(project.assetsDir);
manifest {
attributes 'Main-Class': project.mainClassName
}
}
dist.dependsOn classes
编辑:我的“build.gradle”文件如下所示。但我注意到它无法解析 json 库。错误可能在这里,因为我们正在从互联网上的 json 文件中提取 gradle 版本。
import groovy.json.JsonSlurper // Cannot resolve symbol 'json'
buildscript {
ant.get(src: 'https://libgdx.com/service/versions.json', dest: 'versions.json')
def versionFile = file('versions.json')
def json
if (versionFile.exists()) {
json = new JsonSlurper().parseText(versionFile.text)
} else throw new GradleException("Unable to retrieve latest versions, please check your internet connection")
ext {
gdxVersion = json.libgdxRelease
roboVMVersion = json.robovmVersion
roboVMGradleVersion = json.robovmPluginVersion
androidToolsVersion = json.androidBuildtoolsVersion
androidSDKVersion = json.androidSDKVersion
androidGradleToolsVersion = json.androidGradleToolVersion
gwtVersion = json.gwtVersion
gwtGradleVersion = json.gwtPluginVersion
}
repositories {
mavenLocal()
mavenCentral()
maven { url "https://plugins.gradle.org/m2/" }
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
jcenter()
google()
}
dependencies {
classpath "org.wisepersist:gwt-gradle-plugin:$gwtGradleVersion"
classpath "com.android.tools.build:gradle:$androidGradleToolsVersion"
classpath "com.mobidevelop.robovm:robovm-gradle-plugin:$roboVMGradleVersion"
}
}
我正在发布解决方案,以防其他人遇到同样的问题:
androidToolsVersion, androidSDKVersion, androidGradleToolsVersion, gwtGradleVersion
这 4 个变量是从互联网上的 json 文件中提取的,但是从 json 文件中提取的值可能并不总是正确工作。使变量兼容。
例如,此代码使用 classesDir.The classesDir 属性 已在 Gradle 5.x.
中删除
如果你拉到 Gradle 4.8.1,你会得到错误“最低支持 Gradle 版本是 6.5。当前版本是 4.8.1。”。要修复此错误,您必须将与 4.8.1 gradle 版本兼容的 3.2.x 值分配给 androidGradleToolsVersion 变量。
androidGradleToolsVersion = "3.2.1"