cocos2dx 3.17.1 Android Studio 3.4.1 Firebase 도입 2


build.gradle(Project.proj.android) - com.google.gms 추가 
dependencies {
    classpath 'com.android.tools.build:gradle:3.4.1'
    classpath 'com.google.gms:google-services:4.2.0'  // Google Services plugin 추가.

가이드에는 아래 소스를 같은 파일 하단에 추가하라고 설명되어 있으나, 실행 후 오류!
// Add the following line to the bottom of the file:
  apply plugin: 'com.google.gms.google-services'  // Google Play services Gradle plugin


build.gradle(Module: gonefashion_android) 하단에 추가. - 도입 1에서 설명이 있었음.
// Add the following line to the bottom of the file:
apply plugin: 'com.google.gms.google-services'  // Google Play services Gradle plugin



  • Firebase C++ SDK 다운로드

경로 확인


gradle.properties 
systemProp.firebase_cpp_sdk.dir=D\:\\Development\\gonefashion_android\\firebase_cpp_sdk


setting.gradle

def firebase_cpp_sdk_dir = System.getProperty('firebase_cpp_sdk.dir')

gradle.ext.firebase_cpp_sdk_dir = "$firebase_cpp_sdk_dir"
includeBuild "$firebase_cpp_sdk_dir"



build.gradle(Project.proj.android) 중앙. 
build.gradle(Module: gonefashion_adroid) 소스 추가.
공식 가이드의 5단계 4번 - '프로젝트 수준 build.gradle 파일에 다음을 추가합니다.'
의 내용과 저의 프로젝트Android Studio(3.4.1)가 조금 달라서 당황했습니다.  

build.gradle(Module: gonefashion_adroid) 중앙의 arguments 부분에DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir" <- 이부분을 추가해 줍니다.
    externalNativeBuild {
            if (PROP_BUILD_TYPE == 'ndk-build') {
                
            }
            else if (PROP_BUILD_TYPE == 'cmake') {
                cmake {
                    targets 'MyGame'
                    arguments "-DCMAKE_FIND_ROOT_PATH=", "-DANDROID_STL=c++_static", "-DANDROID_TOOLCHAIN=clang", "-DANDROID_ARM_NEON=TRUE", "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir"
                    cppFlags "-frtti -fexceptions -fsigned-char"
                }
            }
        }


CMakeLists.txt 하단에 추가. - 애드몹 사용을 위해 firebase_admob 추가함.
# Add the Firebase libraries to the target using the function from the SDK.
add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL)
# Note that firebase_app needs to be last in the list.
set(firebase_libs firebase_admob firebase_app)
target_link_libraries(${APP_NAME} "${firebase_libs}" ${ADDITIONAL_LIBS})






댓글