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

这几日接入九游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. JavaScript-日常代码-时间

    取得今天0点: var start = new Date(new Date(new Date().toLocaleDateString()).getTime()); console.log(start ...

  2. BUG----spark

    我也想说很尴尬, 搞到显现 发现 原来是个版本的bug spark 1.6.0  有个BUG 希望更多人看到 Traceback (most recent call last):  File &quo ...

  3. 自定义的JSP标签

    JSP标签 JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签. 除了这 ...

  4. Java 重要知识点,踩过的坑

    (1),关于 LinkedHashMap  TreeMap HashMap 之间的区别: HashMap 是无序的,LinkedHashMap 由于内部维护了一个记录的链表,数据操作的前后顺序都会在链 ...

  5. sql server 标量函数的用法

    函数的内容是把汉字转换成拼音 select dbo.uf_GetSpellCode( book_class) from BOOK_MSG

  6. K-D Tree学习笔记

    用途 做各种二维三维四维偏序等等. 代替空间巨大的树套树. 数据较弱的时候水分. 思想 我们发现平衡树这种东西功能强大,然而只能做一维上的询问修改,显得美中不足. 于是我们尝试用平衡树的这种二叉树结构 ...

  7. Invalid JDK version in profile 'doclint-java8-disable': Unbounded range: [1.8, for project com.google.code.gson:gson 解决办法

    利用maven打包的时候遇到这个问题 在git上发现一个解决方案 问题解决

  8. (转)awk 详解

    出处:https://blog.51cto.com/yijiu/1358416 awk详解 awk是一款非常牛逼的报告生成工具,能够将文本格式化成显示为比较直观的结果 废话不多说,直接上例子 awk的 ...

  9. BZOJ4237稻草人——单调栈+CDQ分治

    题目描述 JOI村有一片荒地,上面竖着N个稻草人,村民们每年多次在稻草人们的周围举行祭典. 有一次,JOI村的村长听到了稻草人们的启示,计划在荒地中开垦一片田地.和启示中的一样,田地需要满足以下条件: ...

  10. [转载]workbench分网---mapped face meshing面映射网格划分

    原文地址:face meshing面映射网格划分">workbench分网---mapped face meshing面映射网格划分作者:一丝尘埃 face meshing面映射网格划 ...