Legacy Android SDK Installation
This page documents the legacy OEG Android SDK (oeg-android-sdk/), which is in maintenance-only mode and will be removed in a future release.
New games must integrate SDK v2 only. Use this page only as a reference for existing Android games already shipping with the legacy SDK. No new features will be added here.
This page documents the oeg-android-sdk/ integration that existing Android games use today.
What you need from OEG
- The legacy Android SDK artifact (
.aar) or the Maven coordinate your team uses internally oeg_config.jsongoogle-services.jsonif you use Firebase push or Google login- Facebook App ID / Client Token if you use Facebook login
- Adjust / Sentry keys only if those services are enabled for your game
Requirements
- Android
minSdk 24+ - JDK 17
- Android Studio Hedgehog or newer
Add the SDK
The sample apps consume the SDK as a local module, but client games usually integrate either:
- A provided
.aardropped intoapp/libs/ - A private Maven/JitPack coordinate provided by OEG
Example using a local .aar:
dependencies {
implementation(files("libs/oeg-sdk-1.1.2.aar"))
}
If your team publishes the SDK to Maven/JitPack, replace the dependency line with the coordinate OEG gives you.
Repositories
The SDK depends on common Android libraries from Google and Maven Central:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
}
Add oeg_config.json
Place the file at app/src/main/assets/oeg_config.json.
Legacy Android reads this file with Gson into the SDK config model, so the JSON keys are camelCase.
{
"coreConfig": {
"gameId": 36,
"apiBaseUrl": "https://dev-api-sdk-game.oeg.vn/",
"debugEnv": true,
"userInfoFullNameRequired": true,
"userInfoBirthdayRequired": true,
"userInfoEmailRequired": true,
"userInfoPhoneRequired": true,
"defaultNotificationChannelId": "default",
"defaultNotificationTitle": "Notification",
"userInfoAutoPopup": false
},
"snsConfig": {
"facebookAppId": "YOUR_FACEBOOK_APP_ID",
"facebookClientToken": "YOUR_FACEBOOK_CLIENT_TOKEN",
"fbLoginProtocolScheme": "fbYOUR_FACEBOOK_APP_ID",
"googleWebClientId": "YOUR_GOOGLE_WEB_CLIENT_ID"
},
"loggingConfig": {
"sentryDsn": ""
},
"trackingConfig": {
"adjustAppToken": "YOUR_ADJUST_APP_TOKEN",
"adjustEnvironment": "sandbox",
"eventNameTokenMapping": {
"login": "EVENT_TOKEN_LOGIN",
"registration": "EVENT_TOKEN_REGISTER",
"purchase": "EVENT_TOKEN_PURCHASE"
}
}
}
Add required app files
google-services.json
Add google-services.json to the app/ module if your game uses:
- Google login
- Firebase messaging / push
Manifest
The sample app keeps the host app manifest minimal:
<application
android:name=".App"
...>
<activity
android:name=".AppActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
The SDK itself ships its own activities and resources.
Initialize the SDK
Initialize once from your Application class:
class App : Application() {
override fun onCreate() {
super.onCreate()
OegSdk.init(this)
}
}
Java:
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
OegSdk.INSTANCE.init(this);
}
}
And register the Application in AndroidManifest.xml:
<application
android:name=".App"
... />
Optional services
Facebook login
Provide facebookAppId, facebookClientToken, and fbLoginProtocolScheme in oeg_config.json.
Google login / Firebase push
Add google-services.json and the Firebase setup required by your app.
Sentry
Set loggingConfig.sentryDsn. If empty, Sentry is skipped.
Adjust
Set trackingConfig.adjustAppToken and trackingConfig.adjustEnvironment.
Quick smoke test
After initialization, launch the SDK login UI:
OegSdk.showLogin(callback, orientation = OegSdk.ScreenOrientation.PORTRAIT)
If the SDK is wired correctly, the login activity opens and the callback returns a WorkResult<AuthenticationInfo>.