cocos2d-x 3.16 버전을 사용하고 있습니다.
오늘자 기준으로 안드로이드 스튜디오에서 NDK를 설치하니, r16 버전이 설치가 됩니다.
여기서 프로젝트를 생성하고, 안드로이드 스튜디오에서 빌드하면,
Error:(81) Android NDK: Application targets deprecated ABI(s): armeabi
이라는 에러가 발생합니다.
이 에러가 발생해도, 실행이 되긴 합니디만, 이 에러 다음줄에 보면 다음부터는 이 ABI를 지원하지 않을것이라는 경고가 있으니 그대로 사용하기가 좀 꺼려집니다.
어차피 대부분 안드로이드 기기는 ARM계열에서 사용하니 (특별히 ARM기기를 사용하지 않는 분들은 알아서 설정 하시시라 생각 됩니다.), NDK 디폴트로 빌드 되도록 약간의 수정을 하면, 이 에러를 만나지 않아도 됩니다.
이 에러가 나타나지 않게 하기 위해 3개의 파일을 수정합니다. 수정할 3개의 파일은 아래 그림과 같습니다.
1. gradle.properties 파일 수정
gradle.properties 파일을 보면, 'PROP_APP_ABI' 이라는 속성이 있습니다. 특별히 지정하고자 하는 ABI가 없다면, 아래와 같이 주석 처리 합니다. 주석 처리 방법은 그냥 맨 앞에 '#'을 붙여 주면 됩니다.
# PROP_APP_ABI=armeabi
NDK r16은 플랫폼 10을 지원하지 않으므로 (cocos2d-x v3.16에서 프로젝트 생성하면 기본으로 10으로 되어 있음), PROP_APP_PLATFORM을 14로 바꾸어 줍니다.
이왕 수정하는것, 안드로이드 SDK의 플랫폼 버전도 적절히 수정해 줍니다.
아래는 현재 시점에 제가 설정한 내용입니다.
PROP_COMPILE_SDK_VERSION=14
PROP_MIN_SDK_VERSION=14
PROP_TARGET_SDK_VERSION=27
PROP_APP_PLATFORM=14
2. build.gradle 수정
이제, PROP_APP_ABI가 없으므로, 이 정의를 사용한 파일에서 에러가 날 것입니다. 찾아보면, 이 정의를 build.gradle 에서 사용함을 알 수 있습니다.
build.gradle은 여러 파일이 있게 때문에 잘 찾아야 합니다. 위 예제 그림에서 Banana라고 되어 있는 것이 프로젝트 이름입니다(따라서 이 이름은 각자 다르겠죠?) 프로젝트 이름으로 된 부분의 build.gradle 을 엽니다.
'abiFilters.addAll(PROP_APP_ABI.split(':').collect{it as String})' 이라고 되어 있는 부분을 찾아서 아래와 같이 주석 처리 합니다. gradle 파일에서는 주석 처리를 위해 '//'을 사용해야 합니다.
// abiFilters.addAll(PROP_APP_ABI.split(':').collect{it as String})
참고로, 만약, PROP_APP_ABI를 사용한다면 (예를 들어 ARM대신 다른 ABI를 사용하기 위해 직접 설정했다면) 이 부분은 주석처리하지 않고 넘어가야 합니다. 여기서 주석처리 하는 이유는 위, 1번에서 PROP_APP_ABI를 주석처리해서 없앴기 때문입니다.
그리고, 필수는 아니지만 이왕 하는것,
buildToolsVersion "25.0.0"
이라고 되어 있는 것도 본인이 사용하는 Android SDK Build Tool 버전으로 바꿔 주면, 경고 표시 하나 줄일 수 있습니다. 저는 27.0.2로 바꾸었습니다. (이 버전은 본인의 환경에 따라 다릅니다.)
3. Application.mk 파일 수정
마지막으로 Application.mk 파일을 수정합니다. 이 파일은 본인이 작성한 게임 소스코드 자체를 NDK 필드 할 때 사용하는 파일입니다. (참고로, 위에서 설정한 내용들이, cocos2d-x 자체를 빌드할 때에도 적용이 됩니다.)
여기에서는,
APP_ABI := armeabi
이라고 되어 있는 부분을 아래와 같이 주석처리 합니다. mk 파일은 주석 처리에 #을 사용합니다.
# APP_ABI := armeabi
이제 빌드 하고 실행해 봅니다.
빌드도 비교적 깔끔하게 되었고요...
단말기에서 실행도 잘 되네요.
(C) 2017 WingsNote.com (무단 복제 및 게시 금지, 링크 허용)
'게임 개발 > Cocos2d-x' 카테고리의 다른 글
cocos2d-x 3.17 이상에서 빌드 목록 작성 android.mk 대신 CMakeLists.txt 사용 (1) | 2019.01.29 |
---|---|
cocos2d-x 3.16 에서 구글 인앱빌링 AIDL 추가 (0) | 2018.04.06 |
Sprite3D 지원하는 Cocos2d-x v3.2 정식 버전 발표 (0) | 2014.07.21 |
Cocos2d-x v3.0 정식 버전 발표 (0) | 2014.04.25 |
Cocos2d-x 에서 iOS와 안드로이드 배경음악 종류 분리 (0) | 2014.03.27 |