Форум программистов, компьютерный форум, киберфорум
Наши страницы
Nikto
Войти
Регистрация
Восстановить пароль
Оценить эту запись

Сборка Cocos2d-x проекта под Android

Запись от Nikto размещена 12.05.2019 в 15:06

Недавно достаточное количество времени промучался с собиранием кокосовского проекта под android. И так небольшое количество туториалов, статей и видео зарубежных коллег, да и эти не точны, а вероятно относятся к старым версиям, поэтому и не работают. А на русском инструкций практически нет, а которые есть в основном бесполезны. Так как проблему сборки я решил, то хочу поделиться решением. Для особо внимательных – да да я снова занимаюсь разработкой игры.

И так, я предполагаю, что проект cocos2d-x у вас уже создан и вы уже посмотрели как выглядит этот проект на windows, к слову сборка именно под windows очень простая, достаточно открыть win32 проект в Visual Studio и скомпилить. Под android не так просто, нам понадобится Android Studio. Устанавливаем через Android Studio одну из актуальных Android SDK, и ещё ставим NDK, все эти действия легко делаются в Tools->Android->SDK Manager. Добавляем в переменную среды Path путь до cmake, cmake находится в папке с Android SDK %LocalAppData%\Android\sdk\cmake\3.10.2.4988404\bin (название папки с версией вероятно у вас может быть другое, сами посмотрите какое у вас). JDK нам устанавливать не нужно, в пакете Android Studio оно уже есть.

Выбираем NDK (если возникнут какие-то проблемы, то вероятно нужны ещё другие компоненты что на скрине, но у меня они уже были установлены)
Нажмите на изображение для увеличения
Название: cocos_android1.png
Просмотров: 29
Размер:	64.0 Кб
ID:	5347

Ставим путь до cmake
Нажмите на изображение для увеличения
Название: cocos_android2.png
Просмотров: 28
Размер:	12.5 Кб
ID:	5348

Теперь нам надо исправить следующие файлы: CMakeLists.txt (лежит в корне кокос проекта) и Android.mk (лежит в proj.android/app/jni). Если у вас HelloWorld проект и больше не добавляли никаких классов, то можно пропустить этот шаг. Суть в том, что нужно добавить недостающие пути к исходникам в эти файлы. В CMakeLists.txt нужно добавить и .cpp и .h файлы. В Android.mk добавить только все .cpp файлы, а также прописать все директории в которых есть .h файлы.

Пример исправлений в файле CMakeLists.txt:
Код:
<...> - тут остальная часть файла, которую менять не надо
list(APPEND GAME_SOURCE
     Classes/AbstractGameObject.cpp     
     Classes/AppDelegate.cpp     
     Classes/ChoiceMenu.cpp     
     Classes/Contestant.cpp     
     Classes/dragonBones/animation/Animation.cpp     
     Classes/dragonBones/animation/AnimationState.cpp     
     Classes/dragonBones/animation/BaseTimelineState.cpp     
     Classes/dragonBones/animation/TimelineState.cpp     
     Classes/dragonBones/animation/WorldClock.cpp     
     Classes/dragonBones/armature/Armature.cpp     
     Classes/dragonBones/armature/Bone.cpp     
     Classes/dragonBones/armature/Constraint.cpp     
     Classes/dragonBones/armature/DeformVertices.cpp     
     Classes/dragonBones/armature/Slot.cpp     
     Classes/dragonBones/armature/TransformObject.cpp  
     <...> - тут ещё куча файлов .cpp
     )
list(APPEND GAME_HEADER
     Classes/AbstractGameObject.h
     Classes/AppDelegate.h
     Classes/ChoiceMenu.h
     Classes/Contestant.h
     Classes/dragonBones/animation/Animation.h
     Classes/dragonBones/animation/AnimationState.h
     Classes/dragonBones/animation/BaseTimelineState.h
     Classes/dragonBones/animation/IAnimatable.h
     Classes/dragonBones/animation/TimelineState.h
     Classes/dragonBones/animation/WorldClock.h
     Classes/dragonBones/armature/Armature.h
     Classes/dragonBones/armature/Bone.h
     Classes/dragonBones/armature/Constraint.h
     Classes/dragonBones/armature/DeformVertices.h
     Classes/dragonBones/armature/IArmatureProxy.h
     Classes/dragonBones/armature/Slot.h
     Classes/dragonBones/armature/TransformObject.h
     <...> - тут ещё куча файлов .h
     )
<...> - остальная часть файла, которую менять не надо
Пример исправлений в файле Android.mk:
Код:
<…> – тут остальная часть файла, которую менять не надо

LOCAL_SRC_FILES := hellocpp/main.cpp \
     ../../../Classes/AbstractGameObject.cpp \ 
     ../../../Classes/AppDelegate.cpp \ 
     ../../../Classes/ChoiceMenu.cpp \  
     ../../../Classes/Contestant.cpp \    
     ../../../Classes/dragonBones/animation/Animation.cpp \   
     ../../../Classes/dragonBones/animation/AnimationState.cpp \  
     ../../../Classes/dragonBones/animation/BaseTimelineState.cpp \    
     ../../../Classes/dragonBones/animation/TimelineState.cpp \
     ../../../Classes/dragonBones/animation/WorldClock.cpp \ 
     ../../../Classes/dragonBones/armature/Armature.cpp \   
     ../../../Classes/dragonBones/armature/Bone.cpp \    
     ../../../Classes/dragonBones/armature/Constraint.cpp \  
     ../../../Classes/dragonBones/armature/DeformVertices.cpp \    
     ../../../Classes/dragonBones/armature/Slot.cpp \    
     ../../../Classes/dragonBones/armature/TransformObject.cpp \   
     <…> – тут ещё куча файлов .cpp



LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../../Classes \
     $(LOCAL_PATH)/../../../dragonBones/ \
     $(LOCAL_PATH)/../../../dragonBones/animation \
     $(LOCAL_PATH)/../../../dragonBones/armature \
     $(LOCAL_PATH)/../../../dragonBones/core \
     $(LOCAL_PATH)/../../../dragonBones/events \
     $(LOCAL_PATH)/../../../dragonBones/factories \
      $(LOCAL_PATH)/../../../dragonBones/geom \
     $(LOCAL_PATH)/../../../dragonBones/model \
     $(LOCAL_PATH)/../../../dragonBones/parsers \
     $(LOCAL_PATH)/../../../dragonBones/cocos2dx \
     $(LOCAL_PATH)/../../../dragonBones/textures \
     $(LOCAL_PATH)/../../../Classes/rapidjson \
     $(LOCAL_PATH)/../../../Classes/rapidjson/error \
     $(LOCAL_PATH)/../../../Classes/rapidjson/internal \
     $(LOCAL_PATH)/../../../Classes/rapidjson/msinttypes \
     <…> – тут ещё остальные директории

<…> – остальная часть файла, которую менять не надо
Лайфхак как добавить исходные файлы если у вас их очень много. Зайдите в cmd в папку с исходниками, наберите:

Код:
dir /B /s | find ".cpp"
Выведет список всех .cpp в проекте, осталось только подкорректировать текст автозаменой и добавить пути в CMakeLists.txt и в Android.mk.

Почти готово, теперь открываем папку proj.android в Android Studio как проект. Главное иметь достаточно места на диске, сборка съест около 2-3 гигов. Нажимаем Build->Build APK в Android Studio, ждём минут 15, после можем радоваться собранному APK. В итоге всё достаточно просто если есть инструкция.

Источник: https://catplusplus.ru/blog/build_cocos2dx_android
Размещено в Без категории
Просмотров 92 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru