Как разрабатывать с помощью libGDX для Android и для настольных ПК (IntelliJ 2018 CE / Gradle) с Java 8 - PullRequest
0 голосов
/ 03 мая 2018

Медленно учусь на градле. Важно (для меня) исключить ошибки IDE и запустить мой проект из командной строки. Это привело меня к обнаружению, что мой путь имел в виду JRE вместо JDK; Я получил сообщение об ошибке о том, что tools.jar не был на пути, и это было.

Однако я все еще не могу пройти около 80 с чем-то процентов, когда я выполняю gradlew desktop:debug.

Следовательно, этот вопрос касается IntelliJ, который я недавно обновил до версии 2018 года. Версия 2017 работала нормально, с большим отказом от ответственности, которым я не был, фактически используя лямбду Java8 в то время. Переходя к 2018 году, я почувствовал, что легче создать новый проект libGDX (лучший способ, которым я знаю, нацеленный на несколько платформ), чтобы записывать все мои файлы вместо того, чтобы отлаживать все (часто бесполезные) трассировки стека, которые я получал.

Из коробки я выполнил минимальные дальнейшие изменения в gradle, чтобы заставить настольную версию работать. Я действительно не хочу повторять это, поскольку я выбираю новое имя, которое означает много редактирования и исправления. Когда дело дошло до развертывания на Android, я застрял.

Какие изменения необходимы для версий Gradle и файлов Gradle, чтобы сборки Android работали? Для бонусных баллов, почему, по-видимому, задействованы 4 разные версии gradle?

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

Я потратил много времени на компиляцию libgdx в java8. И я это сделал. Работает на меня и моих друзей. Если вы хотите попробовать его, и он сразу не работает, дайте Intellij несколько перезапусков и сделайте кэш недействительным. Возможно, нужно удалить .gradle из% userdir% (не обязательно), но в конце концов он работал стабильно.

Вот мой конфиг:

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

Проект 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
0 голосов
/ 03 мая 2018

В моем верхнем уровне 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)
...

Это означало, что я не следовал инструкциям, которые перепутал конфигурации, описанные выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...