学习之路漫漫,应修之期远兮。持之以恒,方得始终。

这几日接入九游SDK,于浑浑噩噩中成长。

下面是步骤:

一:下载九游SDK

二:打开Android Studio新建一个工程,并且新建一个AndroidLibrary的Moudle,这里的命名随意。包名设置成你想设的名字。

三:1:把Unity中的class.jar文件放入Android Studio项目下的libs文件夹。

  2:找到九游sdk下的aar文件解压,把里面的class.jar改名为ucgamesdk.jar,连同九游sdk依赖库下的alipaySdk-20160825.jar一同放入Android Studio下的libs文件夹。

  3:并且复制aar包里的Asserts和res文件夹放入工程中,放入位置如下图:

四:复制代码到包下,新建一个你自己的启动Activity或者直接复制。我这里复制的是Demo中的代码。复制完以后会有报错,按照说明修改。把全部文件修改的没有报错。

五:修改AndroidManifest文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.chen.ucsdkdemo"
android:versionCode="1"
android:versionName="1.0" > <supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 8x新增加 --> <application
android:label="@string/app_name" > <activity
android:name="com.chen.ucsdkdemo.MainActivity"
android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale"
android:label="@string/app_name"
android:launchMode="singleTask"
android:screenOrientation="fullSensor">
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
<meta-data
android:name="unityplayer.UnityActivity"
android:value="true" />
</activity> <activity
android:name="cn.gundam.sdk.shell.activity.ProxyActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:windowSoftInputMode="adjustResize" >
<intent-filter>
<action android:name="cn.uc.gamesdk.sdkweb" /> <category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<!--
android:taskAffinity 填上游戏的包名,如游戏包名为cn.uc.gamesdk.demo,
则下面填 cn.uc.gamesdk.demo.diff
-->
<!--
data android:scheme 里填上”ng+当前游戏的gameId”,如游戏ID是123456,则填
上ng123456
-->
<activity
android:name="cn.uc.gamesdk.activity.PullupActivity"
android:excludeFromRecents="true"
android:exported="true"
android:label="PullupActivity"
android:launchMode="singleTop"
android:taskAffinity="com.chen.ucsdkdemo.diff"
android:theme="@android:style/Theme.Translucent"
tools:node="replace" >
<intent-filter>
<action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="ng119474" />
</intent-filter>
</activity>
<!-- alipay sdk begin -->
<activity
android:name="com.alipay.sdk.app.H5PayActivity"
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
android:exported="false"
android:screenOrientation="behind" >
</activity>
<activity
android:name="com.alipay.sdk.auth.AuthActivity"
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
android:exported="false"
android:screenOrientation="behind" >
</activity>
<activity
android:name="com.alipay.sdk.app.H5AuthActivity"
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
android:exported="false"
android:screenOrientation="behind" >
</activity>
<!-- alipay sdk end -->
<!-- sdk service 1.1.3新增 -->
<service
android:name="cn.gundam.sdk.shell.service.ProxyService"
android:exported="true"
android:process=":bgservice" />
<!-- sdk service end -->
</application> </manifest>

六:Build一下,打出aar包,解压aar包,把其中的主目录下的class.jar文件拷贝到libs文件夹下  删除原libs文件夹下的class.jar文件(原libs下的class.jar文件为Unity的jar包,不删除的话会打包失败,报重复jar错误。)并且把AndroidManifest文件、libs文件夹、res文件夹和Assets文件夹一并复制到Unity中的Plugins/Android文件夹下

文件目录如下:

七:复制九游sdkdemo中的c#代码到Unity,并且修改其中关于代码调用部分的包名,改为你自己的包名

八:把代码挂在MainCamera上,打包测试,搞定。

接入过程中有几个坑这里记录一下:

1:报错日志:

ERROR: Unable to find method 'org.gradle.api.tasks.compile.CompileOptions.setBootClasspath(Ljava/lang/String;)V'.

Possible causes for this unexpected error include:

原因:应该是gradle版本不对的原因

解决:build.gradle里面classpath 'com.android.tools.build:gradle:3.0.1 改为了3.4.1或者其他如3.3.1  就解决了 。

2:报错日志:

CommandInvokationFailure: Unable to convert classes into dex format.

/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/bin/java -Xmx2048M -Dcom.android.sdkmanager.toolsdir="/Users/chentianliang/Documents/ResourceFile/Android/AndroidSDK/android-sdk-macosx/tools" -Dfile.encoding=UTF8 -jar "/Applications/Unity/PlaybackEngines/AndroidPlayer/Tools/sdktools.jar" -

原因:包重复

解决:删除aar包中libs下原Unity的jar包(class.jar)。  

3: 报错日志:

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.

原因:这个好像是因为Gradle版本太高了

解决:Android Studio  -->File-->Project Structure -->Android Gradle Plugin Version改为   3.3.1 Gradle Version 改为4.10.1   点击ok  搞定。

4:游戏安装之后打不开,闪崩,连上日志发现两个问题:

  1:AndroidManifest.xml里面的permission 有所报错。

  2:包名调用错误,复制过来的代码要修改成自己的包名。

5:游戏包安装不上,安装上以后立即被删除:

  经过排查,发现是AndroidManifest.xml里面新增的8.x部分的permission 有问题,删掉就好了

  这个地方权限问题,我也弄不清具体为什么,等待以后慢慢排查。

这里整个九游sdk的接入就完成了  !

Unity接入九游SDK学习与踩坑的更多相关文章

  1. Unity发布至IOS的流程(踩坑记录)

    这篇文章主要用于记录本人亲身经历过的Unity发布到IOS平台所遇到的所有坑(其实也就是一些自己并不明白的强制设定),以便于后续再有类似需求时少走些弯路. 我的环境: Unity 5.2.2 个人版( ...

  2. Grafana Loki 学习之踩坑记

    转发自:https://mp.weixin.qq.com/s/zfXNEkdDC9Vqd9lh1ptC1g Grafana 出品的 loki 日志框架完美地与 kubernetes 的 label 理 ...

  3. 学习git踩坑之路

    第一次使用git: 1.使用CentOS Linux release 7.3.1611 (Core),内核版本3.10.0-514.el7.x86_64 2.安装git: root权限运行:yum   ...

  4. ansible 基本命令学习与踩坑

    1. 命令行参数 -v,–verbose 详细模式,如果命令执行成功,输出详细的结果(-vv –vvv -vvvv) -i PATH,–inventory=PATH 指定host文件的路径,默认是在/ ...

  5. VUE使用微信JDK(附踩坑记录)

    VUE使用微信分享SDK(附踩坑记录) 微信分享官方文档 安装JS-SDK npm i -S weixin-jsapi 引入包 ES5 写法 const wx = require('weixin-js ...

  6. 【Unity游戏开发】性能优化之在真机上开启DeepProfile与踩坑

    一.引子 最近马三入职了新公司,平时除了负责编辑器开发之外还要做一些游戏性能优化方面的工作.在这里首先给大家安利一下Unity官方的性能测试分析工具URP ,这个工具目前是免费,测试的过程中也不需要接 ...

  7. GJM:Unity导入百度地图SDK [转载]

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

  8. Android SDK 开发——发布使用踩坑之路

    前言 在 Android 开发过程中,有些功能是通用的,或者是多个业务方都需要使用的. 为了统一功能逻辑及避免重复开发,因此将该功能开发成一个 SDK 是相当有必要的. 背景 刚好最近自己遇到了类似需 ...

  9. Unity AssetBundle 踩坑记录

    Unity AssetBundle 踩坑记录 editor 下选择什么平台的 ab 加载 Material doesn't have a color property '_Color' UnityEd ...

随机推荐

  1. PHP 判断给定两个时间是否在同一周,月,年

    判断是否在同一周 date_default_timezone_set('PRC'); //判断是否在同一周,原理:求出其中一个时间戳所在周的周一凌晨时间戳和周日24.00时间戳,如果另一个时间戳在这个 ...

  2. Laravel Repository Pattern

    Laravel Repository Pattern   The Repository Pattern can be very helpful to you in order to keep your ...

  3. sudo 命令报 unable to resolve host 导致反应速度变慢

    1 分析 1.1 字面分析,不能解析主机 1.2 由于修改了本地主机名称所导致 2 解决 2.1 打开 /etc/hosts 2.2 主机名称指向,如你的主机名为 debian 2.3  127.0. ...

  4. AtCoder Beginner Contest 133

    目录 Contest Info Solutions A. T or T B.Good Distance C. Remainder Minimization 2019 D. Rain Flows int ...

  5. NetworkX系列教程(10)-算法之二:最小/大生成树问题

    小书匠 Graph 图论  重头戏部分来了,写到这里我感觉得仔细认真点了,可能在NetworkX中,实现某些算法就一句话的事,但是这个算法是做什么的,用在什么地方,原理是怎么样的,不清除,所以,我决定 ...

  6. QoS in RoCE (zz)

    QoS in RoCE 首页分类标签留言关于订阅2018-03-22 | 分类 Network  | 标签 RDMA  RoCE  ECN  PFC Overview TCP/IP协议栈满足不了现代I ...

  7. php des 对称加解密类

    <?php header("Content-Type: text/html;charset=utf-8"); /** * des 对称加解密 */ class des { p ...

  8. 10月清北学堂培训 Day 1

    今天是杨溢鑫老师的讲授~ T1 1 题意: n * m 的地图,有 4 种不同的地形(包括空地),6 种不同的指令,求从起点及初始的状态开始根据指令行动的结果. 2 思路:(虽然分了数据范围但是实际上 ...

  9. 函数第二部分:为什么说动态参数是没有计划好的参数-Python基础前传(11)

    动态参数1-一个星号变元组 动态参数存在的意义? 函数的作者有时候也不知道这个函数到底需要多少个参数,这时候动态参数就有存在的意义了 动态参数创建-加* 底层原理是:把数值型或其他数据类型变成了元组类 ...

  10. 前端性能测试工具Chrome performance

    页面加载速度慢,到底是多少秒,瓶颈在哪里? 前端性能工具Chrome performance 结合F12,基本可以搞定. 一.Chrome performance 1.shift+ctrl+N进入谷歌 ...