เกิดข้อผิดพลาดขณะกำหนดค่า Groovy ในเกม libgdx

ฉันเริ่มเรียนรู้ ligdx เมื่อสองสามครั้งก่อน ฉันพยายามกำหนดค่า groovy ให้ทำงานในโครงการหลักของเกม แต่ทุกครั้งที่ฉันเรียกใช้แอปพลิเคชัน ฉันจะได้รับข้อยกเว้นเหล่านี้:

ข้อผิดพลาด: Gradle: การดำเนินการล้มเหลวสำหรับงาน :core:compileJava

ข้อผิดพลาด: ไม่สามารถรวบรวมไฟล์ Groovy: ไม่มีการกำหนดไลบรารี Groovy สำหรับโมดูล 'core'

การรวบรวมล้มเหลว ดูเอาต์พุตข้อผิดพลาดของคอมไพเลอร์สำหรับรายละเอียด

ข้อผิดพลาด: (16, 23) Gradle: ข้อผิดพลาด: ไม่พบคลาสสัญลักษณ์ testClass

ข้อผิดพลาด: (16, 23) Gradle: ข้อผิดพลาด: ไม่พบคลาสสัญลักษณ์ testClass

รหัสของฉันคือ:

public class MyGdxGame extends ApplicationAdapter {
SpriteBatch batch;
Texture img;

@Override
public void create () {
    batch = new SpriteBatch();
    img = new Texture("badlogic.jpg");
    testClass test = new testClass();
}

@Override
public void render () {
    Gdx.gl.glClearColor(1, 0, 0, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    batch.begin();
    batch.draw(img, 0, 0);
    batch.end();
}

@Override
public void dispose () {
    batch.dispose();
    img.dispose();


}
}

และ

class testClass {

def scddsds(){
    println('scddsds')
}
}

ไฟล์ Gradle Global คือ:

    buildscript {
    repositories {
        mavenLocal()
        mavenCentral()
        maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0'

    }
}

allprojects {
    apply plugin: "eclipse"
    apply plugin: "idea"

    version = '1.0'
    ext {
        appName = "groovy-test"
        gdxVersion = '1.9.3'
        roboVMVersion = '2.1.0'
        box2DLightsVersion = '1.4'
        ashleyVersion = '1.7.0'
        aiVersion = '1.8.0'
    }

    repositories {
        mavenLocal()
        mavenCentral()
        maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
        maven { url "https://oss.sonatype.org/content/repositories/releases/" }
    }
}

project(":desktop") {
    apply plugin: "java"


    dependencies {
        compile project(":core")
        compile "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion"
        compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
    }
}

project(":android") {
    apply plugin: "android"

    configurations { natives }

    dependencies {
        compile project(":core")
        compile "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
        natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
        natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
        natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a"
        natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
        natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64"
    }
}

project(":core") {
    apply plugin: "java"


    dependencies {
        compile "com.badlogicgames.gdx:gdx:$gdxVersion"
        compile 'org.codehaus.groovy:groovy:2.4.6:grooid'
    }
}

tasks.eclipse.doLast {
    delete ".project"
}

โครงสร้างการไล่ระดับของโครงการหลักคือ:

   apply plugin: "java"

sourceCompatibility = 1.6
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'

sourceSets.main.java.srcDirs = [ "src/" ]


eclipse.project {
    name = appName + "-core"
}

   

ฉันใช้ Android Studio


person RexsosTheAlien    schedule 09.07.2016    source แหล่งที่มา
comment
แบ่งปัน build.gradle ของคุณ   -  person Enigo    schedule 10.07.2016
comment
ฉันโพสต์มัน โปรดตรวจสอบมัน   -  person RexsosTheAlien    schedule 10.07.2016


คำตอบ (1)


ในที่สุดฉันก็สามารถทำให้มันทำงานได้ ก่อนอื่นจะต้องกำหนดค่า build.gradle ส่วนกลาง:

project(":core") {
    apply plugin: "java"
    apply plugin: "groovy"

    dependencies {
        compile "com.badlogicgames.gdx:gdx:$gdxVersion"
        compile group: 'org.codehaus.groovy', name: 'groovy-all', version: '2.4.7'

    }
}

ฉันเพิ่ม Groovy ให้กับโปรเจ็กต์หลักเท่านั้น และดูเหมือนว่าจะทำงานได้ดี

จากนั้นไปที่การสร้าง gradle ของโครงการหลักที่ฉันเพิ่ม:

apply plugin: "java"
apply plugin: "groovy"
sourceCompatibility = 1.6
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
sourceSets {
    main {
        java { srcDirs = [] } 
        groovy { srcDir "src" }
    }
}
eclipse.project {
    name = appName + "-core"
}
dependencies {
}

ข้อมูลเพิ่มเติมเกี่ยวกับ "เวทย์มนตร์" พร้อมชุดแหล่งที่มาสามารถพบได้ในคำตอบนี้

BTW ฉันสร้างโฟลเดอร์แยกต่างหากสำหรับคลาส Groovy ดังนั้นโครงสร้างโปรเจ็กต์จึงเป็นดังนี้:

src   
 --main
    --java
    --groovy
person Enigo    schedule 11.07.2016
comment
เมื่อฉันเพิ่มโค้ดลงในโปรเจ็กต์ของฉันและคอมไพล์มัน ฉันได้รับข้อยกเว้นนี้: ข้อผิดพลาด: Android Gradle Build Target: java.lang.StringIndexOutOfBoundsException: ดัชนีสตริงอยู่นอกช่วง: -92 - person RexsosTheAlien; 12.07.2016
comment
สิ่งนี้เชื่อมโยงกับคำถามปัจจุบันหรือไม่ 'เพราะบางทีมันอาจจะคุ้มค่าที่จะถามอีกอันหนึ่ง) - person Enigo; 13.07.2016