如何使用Java 8在Android和桌面(IntelliJ 2018 CE / Gradle)上使用libGDX进行开发

时间:2018-05-03 19:18:34

标签: android gradle intellij-idea java-8 libgdx

慢慢学习gradle。 排除IDE错误并从命令行运行我的项目对我来说是必不可少的。这让我发现我的路径是指JRE而不是JDK;我收到一条错误消息,指出tools.jar不在路径上,就是那样。

但是当我执行gradlew desktop:debug时,我仍然无法超过80%的百分比。

因此,这个问题与我最近升级到2018版本的IntelliJ有关。版本2017工作正常,有一个很大的免责声明,我当时并没有使用Java8 lambda。移动到2018年,我觉得创建一个新的libGDX(我知道以多个平台为目标的最佳方式)项目可以更容易地将我的所有文件转储到而不是调试我得到的所有(通常无用的)堆栈跟踪。

开箱即用,我对gradle进行了少量的进一步修改,以使桌面版本正常工作。我真的不想重复这一点,因为我选择了一个新名称,这意味着大量的编辑和破解。在Android上进行部署时,我遇到了困难。

Gradle版本和gradle文件需要进行哪些修改才能使Android版本正常运行?对于奖励积分,为什么显然有4种不同版本的gradle参与?

2 个答案:

答案 0 :(得分:3)

在我的顶级build.gradle中,默认情况下我有

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

我必须改为

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

并延伸:

buildscript {
...
    repositories {
        ...
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
    }

接下来,Lint和其他消息来源让我改变了一行gradle / wrapper / gradle-wrapper.properties来自

distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip

distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip

到我的android级别build.gradle添加:

android {
...
    compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
    }
...

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

我发布这个答案并不是因为它优雅或特别有启发性,而仅仅因为这是我知道在Android和桌面之间切换我的开发的最简单方法(它反向运行)。我从IntelliJ和gradle获得的错误远非有用,并且进行了大量的研究,这些研究在这里被提炼出来。

<强>更新

我不得不回到桌面,并且正在获得一个大规模无法追踪的转储,我希望将其包括在内以供将来参考:

java.lang.NullPointerException
        at java.util.Objects.requireNonNull(Objects.java:203)
        at com.android.build.gradle.BasePlugin.lambda$configureProject$1(BasePlugin.java:436)
...

这意味着我没有按照上述配置混淆的说明。

答案 1 :(得分:2)

我花了很多时间在java8中编译libgdx。我做到了。对我和我的朋友有用。如果您希望尝试它并立即失败,请给Intellij重新启动几次并缓存失效。可能需要从%userdir%(不一定)删除.gradle,但最终它的工作稳定。

这是我的配置:

Intellij IDEA 18+或Android studio 3.0 +

wrapper.properties:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.5-bin.zip

Project build.gradle:

repositories {
    google() //add google repo
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.0.1' //higher versions were not compiling right
}

Andoird build.gradle:

android{
    buildToolsVersion "27.0.3"
    compileSdkVersion 27

    defaultConfig {
        minSdkVersion 16 //16 is good enough for 2018
        targetSdkVersion 27
        //Forget about Jack if you were using it. 
    }

    compileOptions {
        sourceCompatibility = 1.8
        targetCompatibility = 1.8
    }
}
eclipse { 

    jdt {
        sourceCompatibility = 1.8
        targetCompatibility = 1.8
    }
}

和桌面build.gradle

sourceCompatibility = 1.8