Android Studio 开发环境搭建
目前暂只支持Android Studio接入,如需Eclipse接入支持,请联系对接群内技术人员 Android Studio参考用demo:https://github.com/ULUGames/ulu-android-demo
1.1应用级build.gradle配置及导入SDK文件
1.1.1应用级build.gradle配置
请在应用级build.gradle内添加apply plugin并设置minSdkVersion不低于22,targetSdkVersion不低于34
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
android {
***
defaultConfig {
minSdkVersion 22
targetSdkVersion 34
***
}
}
1.1.2导入SDK文件及第三方依赖
修改游戏Module的build.gradle文件,并在dependencies域添加导入libs文件夹配置及依赖文件 如果无法通过gradle获取到kakao的sdk,请与我放联系获取aar版本,并注释掉引用kakao的几行
configurations.all {
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'//添加此条以保证每次能够获取最新snapshot版
}
dependencies {
implementation 'com.ulusdk:ulusdk:【请将括号带文字替换成最新的版本号】-SNAPSHOT'//sdk的引用
}
以上修改的gradle文件在Android Studio中的project框以android形式显示下为build.gradle(Module:xxxxxx)
------------------------------------------请勿混淆-----------------------------------------------
以下修改的gradle文件在Android Studio中的project框以android形式显示下为build.gradle(Project:xxxxxx)
1.2项目build.gradle配置
buildscript {
repositories {
google()
jcenter()
}
dependencies {
//注意安卓插件版本需要为3.3.3/3.4.3/3.5.4/3.6.4/4.0.1或更高版本
classpath 'com.android.tools.build:gradle:3.5.4'
classpath 'com.google.gms:google-services:4.3.5'
}
}
allprojects {
repositories {
google()
mavenCentral()
jcenter()
maven { url 'https://repo.ulugame.com/repository/maven-public'}
maven { url 'https://repo.onestore.co.kr/repository/onestore-sdk-public' }
maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/' }
//关于kakao的仓库可能出现无法连接的情况,如果无法切换为韩国网络请参考常见问题部分
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
1.3 AndroidManifest.xml配置
1.3.1 SDK所需权限配置
下列权限已经包含在sdk中,其余权限需由研发自行申请
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
1.3.2 添加组件
<application
<!--适配Android 8 开始不允许使用未加密请求-->
android:usesCleartextTraffic="true">
<!--配置渠道参数,谷歌是2,onestore是3,三星是4, 第三方支付为14-->
<meta-data
android:name="channel_id"
android:value="2" />
<!--fb配置-->
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
<meta-data android:name="com.facebook.sdk.ClientToken" android:value="@string/facebook_client_token"/>
<provider android:authorities="【因为有多包同时安装的需求,请在这里再添加包的渠道类型,如onestore包在这里添加 onestore.,cbt包就在前面加cbt等,谷歌包请不要添加,此括号及其中内容全部清除就好】com.facebook.app.FacebookContentProvider【请将括号带文字替换成参数表中fb的app id】"
android:name="com.facebook.FacebookContentProvider"
android:exported="true"/>
<!--kakao配置-->
<meta-data
android:name="com.kakao.sdk.AppKey"
android:value="【请将括号带文字替换成参数表中kakao的app key】"/>
<activity android:name="com.kakao.sdk.auth.AuthCodeHandlerActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Redirect URI: "kakao${YOUR_NATIVE_APP_KEY}://oauth" -->
<data android:scheme="kakao【请将括号带文字替换成参数表中kakao的app key】" android:host="oauth" />
</intent-filter>
</activity>
<!--推送相关配置(可选)-->
<!--如果有推送的小图标显示要求,请自行替换resource添加-->
<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@mipmap/ic_firebase_notification_default"/>
<!--如果有推送的背景色要求,请自行替换resource添加-->
<meta-data
android:name="com.google.firebase.messaging.default_notification_color"
android:resource="@android:color/holo_red_dark"/>
</application>
1.4 strings.xml配置
请在游戏strings.xml中添加如下配置:
<!-- 1 ULUSDK沙盒环境,0 ULUSDK生产环境,游戏可根据此参数判断当前SDK环境 如果是新接入的话先设置成1,最后上线前设置回0-->
<string name="ulu_env">0</string>
<!--三星支付环境 0生产1沙盒-->
<string name="samsung_operation_mode">0</string>
<string name="facebook_app_id">【请将括号带文字替换成参数表中fb的app id】</string>
<string name="facebook_client_token">【请将括号带文字替换成参数表中fb的client token】</string>
<string name="af_dev_key">【请将括号带文字替换成参数表中af的dev key】</string>
<!--谷歌登录用client_id,若参数表中没有对应id则使用google-services.json中type为3的id-->
<string name="google_login_web_client_id">【请将括号带文字替换成参数表中谷歌的client id】</string>
<string name="google_pay_key">【请将括号带文字替换成参数表中谷歌支付公钥】</string>
<string name="onestore_pay_key">【请将括号带文字替换成参数表中onestore的pay key】</string>
<!--推特参数-->
<string name="com.twitter.sdk.android.CONSUMER_KEY">【请将括号带文字替换成参数表中的twitter consumer key】</string>
<string name="com.twitter.sdk.android.CONSUMER_SECRET">【请将括号带文字替换成参数表中的twitter consumer secret】</string>
<!--kakao参数-->
<string name="kakao_app_key" translatable="false">【请将括号带文字替换成参数表中kakao的app key】</string>
<!--naver参数-->
<string name="naver_login_client_id" translatable="false">【请将括号带文字替换成参数表中naver的client id,可能与naver game的参数相同】</string>
<string name="naver_login_client_secret" translatable="false">【请将括号带文字替换成参数表中naver的client secret,可能与naver game的参数相同】</string>
<!--分享显示设置,0为隐藏,1为显示-->
<string name="ulu_share_fb_on">1</string>
<string name="ulu_share_twitter_on">1</string>
<string name="ulu_share_ins_on">1</string>
<!--sdk谷歌推荐位设置,0为一般设置,如果要求申请谷歌推荐位则需要设置为1(可选)-->
<string name="ulu_is_google_recommend">0</string>
1.5 混淆规则(如:proguard-rules.pro)配置
请在项目混淆规则中添加
-keep class com.kakao.sdk.**.model.* { <fields>; }
-keep class com.kakao.sdk.auth.AuthCodeHandlerActivity { *; }
-keep class * extends com.google.gson.TypeAdapter
-keep class com.navercorp.nng.android.sdk.api.service** { *; }
-keep class com.navercorp.nng.android.sdk.api.entity.** { *; }
-keep class com.navercorp.nng.android.sdk.NNGLink** { *; }
-keep class com.navercorp.nng.android.sdk.NNGLink$Companion { *; }
-keepclassmembers class com.navercorp.nng.android.sdk.NNGLink {
public static ** Companion;
}
-keep class com.navercorp.nng.android.sdk.NNGConfig** { *; }
-dontwarn org.bouncycastle.jsse.**
-dontwarn org.conscrypt.*
-dontwarn org.openjsse.**
-keep class com.gaa.sdk.base.** { *; }
-keep class com.gaa.sdk.auth.** { *; }
-keep class com.gaa.sdk.iap.** { *; }
-keep class com.onestore.extern.licensing.** { *; }
1.6 添加google-services.json文件
请将运营提供的google-services.json文件放置到游戏主工程的根目录下,入下图所示:
1.7 安卓不同渠道包需要变更的配置
安卓包 channel_id为2 onestore包 channel_id为3 三星包 channel_id为4 第三方支付包 channel_id为14 以及sdk外的其他配置,如内购商品id等,详情请查看我方提供的参数表