안드로이드 라이브러리는 minSdkVersion 19버전부터 지원하지만 OkHttp 3.14.7 버전의 이슈로 인해
21버전 이상을 사용해야 하며, 그렇지 않을 경우 크래시가 발생 합니다. 부득이 하게 19 버전을 지원해야 할 때는 아래와 같이 별도의 설정을 추가해야 합니다.
21 이상으로 설정시, 아래 추가설정은 진행하지 않습니다.
3-1 minSdkVersion 19 를 위한 dependencies 설정
dependencies 에 아래와같이 okhttp 강제 의존성을 추가하고, glide 버전을 4.10.0 으로 변경합니다.
implementation ("com.squareup.okhttp3:okhttp:3.12.12"){
force = true //API 19 support
}
implementation 'com.squareup.okhttp3:logging-interceptor:3.12.12'
implementation "com.github.bumptech.glide:glide:4.10.0"
3-2 Glide 4.x 용 NaverGameSdk 라이브러리 교체
Glide 4.x 버전을 지원하기 위해서는 별도의 네이버게임 라이브러리(navergame-sdk-gradle-with-adapter-x.x.x.aar)를 사용해야하고 GlideAdapterV4 라이브러리를 추가해야합니다. 여기에서 다운받으실 수 있습니다.
4. ProGuard 설정
NaverGame SDK 를 사용할때 minifyEnabled 를 true 로 설정한다면 프로가드를 제외하는 옵션을 추가해야 합니다.
#retrofit 2# Retrofit does reflection on generic parameters.InnerClasses is required to use Signature and# EnclosingMethod is required to use InnerClasses.-keepattributes Signature, InnerClasses,EnclosingMethod# Retrofit does reflection on method and parameter annotations.-keepattributes RuntimeVisibleAnnotations,RuntimeVisibleParameterAnnotations# Retain service method parameters when optimizing.-keepclassmembers,allowshrinking,allowobfuscation interface * { @retrofit2.http.*<methods>;}# Ignore annotation used for build tooling.-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement# Ignore JSR 305 annotations for embedding nullability information.-dontwarn javax.annotation.**# Guarded by a NoClassDefFoundErrortry/catch and only used when on the classpath.-dontwarn kotlin.Unit# Top-level functions that can only be used by Kotlin.-dontwarn retrofit2.KotlinExtensions#end of retrofit2#gson##---------------Begin: proguard configuration for Gson ----------# Gson uses generic type information stored in a class file when working with fields. Proguard# removes such information by default, so configure it to keep all of it.-keepattributes Signature# For using GSON @Expose annotation-keepattributes *Annotation*# Gson specific classes-dontwarn sun.misc.**#-keep class com.google.gson.stream.** { *; }# Prevent proguard from stripping interfaceinformation from TypeAdapterFactory,# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)-keep class * implements com.google.gson.TypeAdapterFactory-keep class * implements com.google.gson.JsonSerializer-keep class * implements com.google.gson.JsonDeserializer##---------------End: proguard configuration for Gson ----------#end of gson#glide-keep public class * implements com.bumptech.glide.module.GlideModule-keep public class * extends com.bumptech.glide.module.AppGlideModule-keep public enum com.bumptech.glide.load.ImageHeaderParser$** {**[] $VALUES;public*;}#end of glide#kotlin-keep classkotlin.** { *; }-keep classkotlin.Metadata { *; }-dontwarn kotlin.**-keepclassmembers class **$WhenMappings {<fields>;}-keepclassmembers classkotlin.Metadata {public <fields>;public <methods>;}#End of kotlin#navergame sdk# Application classes that will be serialized/deserialized over Gson-keep classcom.navercorp.nng.android.sdk.api.service** { *; }-keep classcom.navercorp.nng.android.sdk.api.entity.** { *; }-keep classcom.navercorp.nng.android.sdk.NNGLink** { *; }-keep classcom.navercorp.nng.android.sdk.NNGLink$Companion { *; }-keepclassmembers classcom.navercorp.nng.android.sdk.NNGLink {publicstatic** Companion;}-keep classcom.navercorp.nng.android.sdk.NNGConfig** { *; }#end of sdk
5. 초기화
NaverGame SDK가 지원하는 언어에 따라 다음과 같이 NaverGame SDK를 초기화합니다.
5.1 NaverGame SDK 초기화
네이버게임 SDK를 초기화할 때는 다음과 같은 초기화 옵션을 설정하고 init() 메서드를 호출합니다.
finishSdk() 메서드는 NaverGameSDK 를 종료시키는 메서드입니다. 특정 상황에서 sdk 를 종료시켜야 할때 호출합니다. 예를들어 GLinkDelegate 콜백을 통해서 전달되는 인게임메뉴코드 를 실행할때에는 반드시 finishSdk() 메서드를 호출하여 sdk를 닫아주어야 합니다.
NaverGameSdk 에서 인게임메뉴코드 를 실행해야 할 때 발생합니다. 공식 라운지 관리페이지 > SDK 관리> 배너관리 페이지에서 배너에 '인게임 메뉴' 를 등록했을때 사용합니다. Android 와 iOS 각각의 플랫폼에 따라 등록한 값이 각자 전달되므로 다른 값을 입력했다면 각차 처리해 주셔야 합니다.
가로 모드, 세로 모드
Naver Game SDK는 가로 모드와 세로 모드를 모두 지원합니다.
Android 환경에서는 별도로 설정하지 않아도 화면의 가로, 세로 상태에 따라 가로 모드, 세로 모드가 자동으로 적용됩니다.