Добрый день.
Мы с другом занимаемся разработкой под 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 будет создан готовый тестовый проект. Через Intellij Idea мы вызываем импорт и выбираем gradle.build в каталоге нашего проекта.
Затем с помощью задач gradle вы можете запускать Android, настольные и веб-приложения.
Но этот проект не совсем пригоден для дальнейшего развития.
По неизвестной причине модуль Android в Idea остался без зависимостей и соответственно писать какой-то код в этом модуле не очень удобно.
Во-первых, если вы пишете что-то на Android, то Idea не видит зависимостей и ничего не предлагает, а во-вторых, если вы компилируете не через gradle, то вы получите ошибки об отсутствии этих самых зависимостей.
Мы долго копали и в итоге нашли правильную последовательность действий, чтобы собрать проект как надо.
Создание проекта
Сначала мы создаем проект, как описано ранее.Затем в каталоге проекта запускаем команду
Эта команда создаст правильные файлы проекта.gradlew idea
Затем откройте проект *.
ipr и просмотрите список модулей проекта.
Индикатором того, что все зависимости применились, будет жирное выделение каждого модуля:
В принципе, с проектом уже можно работать.
Чтобы запустить приложение Android, вам необходимо добавить приложение Debug/Run Configuration Andoid со следующими настройками:
Аналогично создаем конфигурацию для Desktop-приложения:
Чтобы запустить веб-приложение, выполните команду 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:
После установки всех библиотек проект собрался.
Далее в инструкции по установке были ссылки на проект BaseGameUtils , который реализует вспомогательные классы для работы с сервисами Google Play. Здесь все довольно просто.
Добавляем весь пакет в модуль Android, а в класс AndroidLauncher.java добавляем инициализацию GameHelper и наследуем ее от интерфейса GameHelperListener. public class AndroidLauncher extends AndroidApplication implements GameHelper.GameHelperListener {
private GameHelper gameHelper;
Теги: #libgdx; градиент; андроид; #Разработка игр #Разработка для Android
-
Это Жизненно Важное Время Для Кабеля Hdmi.
19 Oct, 24 -
Nginx: Другой Распределитель
19 Oct, 24 -
Оптимизация Gamethread В Unreal Engine 4 Ч.1
19 Oct, 24 -
Встречайте Новые Серверы Gen10V2
19 Oct, 24 -
Сообщение Пользователю В Ответ На Резюме
19 Oct, 24 -
Браузерная Игра "Кибернеть" - Продолжение
19 Oct, 24