Как Настроить Проект Libgdx С Помощью Gradle И Сервисов Google Play

Добрый день.

Мы с другом занимаемся разработкой под Android уже несколько лет. Мы создавали игрушки, используя чистый Android, OpenGL и Unity3d. Основная проблема первых двух технологий — отсутствие переносимости на разные мобильные платформы.

Собственно, именно поэтому мы начали использовать Unity3d. Это довольно интересная вещь.

Он сочетает в себе отличные возможности программирования с помощью мыши, а также программирование на языке сценариев, похожем на C#.

Поскольку мы Java-разработчики, нам хотелось написать на Java что-то кроссплатформенное.

Выбор пал на LibGDX. Открыв мануал и скачав пару специальных сборщиков скелета проекта на LibGDX, мы приступили к работе.

В результате большую часть времени мы потратили не на программирование, а на настройку проекта, настройку gradle, а также добавление сервисов Google Play. В итоге, наполнив некоторые неровности, мы решили написать эту статью.



Подготовка среды разработки

Сначала вам нужно скачать JDK 1.7 .

В нашем проекте мы использовали Intellij Idea 14+ Community Edition .

Ну и для мобильной разработки Android SDK .

Также следует отметить, что рекомендуется использовать Android SDK 4.4W.2 (API 20).

Далее вам необходимо скачать сборщик проектов libGDX. gdx-setup.jar .



Развертывание проекта

Для создания проекта разработчики libGDX предусмотрели очень удобную утилиту, в которой вы можете выбрать набор библиотек, которые вы будете использовать в своем проекте.

В общем запускаем gdx-setup.jar и заполняем все поля:

Как настроить проект LibGDX с помощью Gradle и сервисов Google Play

После нажатия кнопки «Создать» на libGDX будет создан готовый тестовый проект. Через Intellij Idea мы вызываем импорт и выбираем gradle.build в каталоге нашего проекта.

Затем с помощью задач gradle вы можете запускать Android, настольные и веб-приложения.

Но этот проект не совсем пригоден для дальнейшего развития.

По неизвестной причине модуль Android в Idea остался без зависимостей и соответственно писать какой-то код в этом модуле не очень удобно.

Во-первых, если вы пишете что-то на Android, то Idea не видит зависимостей и ничего не предлагает, а во-вторых, если вы компилируете не через gradle, то вы получите ошибки об отсутствии этих самых зависимостей.

Мы долго копали и в итоге нашли правильную последовательность действий, чтобы собрать проект как надо.



Создание проекта

Сначала мы создаем проект, как описано ранее.

Затем в каталоге проекта запускаем команду

  
  
  
  
  
   

gradlew idea

Эта команда создаст правильные файлы проекта.

Затем откройте проект *.

ipr и просмотрите список модулей проекта.

Индикатором того, что все зависимости применились, будет жирное выделение каждого модуля:

Как настроить проект LibGDX с помощью Gradle и сервисов Google Play

В принципе, с проектом уже можно работать.

Чтобы запустить приложение Android, вам необходимо добавить приложение Debug/Run Configuration Andoid со следующими настройками:

Как настроить проект LibGDX с помощью Gradle и сервисов Google Play

Аналогично создаем конфигурацию для Desktop-приложения:

Как настроить проект LibGDX с помощью Gradle и сервисов Google Play

Чтобы запустить веб-приложение, выполните команду

gradlew html:superDev

затем следуйте инструкциям в журнале.

Все было бы хорошо, если бы мы не хотели добавлять в проект gradle новые модули.

Мне не хотелось вручную добавлять зависимости в настройки проекта; gradle должен сделать это сам.

В общем, мы тоже долго возились с этим вопросом, потому что gradle долгое время отказывался видеть библиотеки Google Play Services.

Установка и настройка сервисов Google Play

Первым делом мы начали следовать инструкции Настройка сервисов Google Play , в котором говорится следующее: Добавьте в модуль Android конфигурацию build.gradle:

dependencies { compile 'com.android.support:appcompat-v7:21.0.3' compile 'com.google.android.gms:play-services:6.5.87' }

А также в AndroidManifest.xml следующее:

<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />

В результате после синхронизации Gradle мы видим следующую ошибку:

Could not find any version that matches com.google.android. gms:play-services:6+ .

Searched in the following locations: https://repo1.maven.org/maven2/com/google/android/gms/play-services/maven-metadata.xml https://repo1.maven.org/maven2/com/google/android/gms/play-services/ https://oss.sonatype.org/content/repositories/snapshots/com/google/android/gms/play-services/maven-metadata.xml https://oss.sonatype.org/content/repositories/snapshots/com/google/android/gms/play-services/ https://oss.sonatype.org/content/repositories/releases/com/google/android/gms/play-services/maven-metadata.xml https://oss.sonatype.org/content/repositories/releases/com/google/android/gms/play-services/

Оказывается, эта библиотека не найдена ни в репозитории maven, ни в других.

Чтобы исправить ситуацию, вам необходимо установить дополнительные библиотеки из пакета extras в Android SDK Manager:

Как настроить проект LibGDX с помощью Gradle и сервисов Google Play

После установки всех библиотек проект собрался.

Далее в инструкции по установке были ссылки на проект BaseGameUtils , который реализует вспомогательные классы для работы с сервисами Google Play. Здесь все довольно просто.

Добавляем весь пакет в модуль Android, а в класс AndroidLauncher.java добавляем инициализацию GameHelper и наследуем ее от интерфейса GameHelperListener.

public class AndroidLauncher extends AndroidApplication implements GameHelper.GameHelperListener { private GameHelper gameHelper;

Теги: #libgdx; градиент; андроид; #Разработка игр #Разработка для Android

Вместе с данным постом часто просматривают: