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等,详情请查看我方提供的参数表

results matching ""

    No results matching ""