Unity接第三方SDK时遇到的坑
1、大部分SDK的方法需要在线程中执行,一般会放在主线程里执行,安卓中主线程一般用于UI渲染。
this.runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
}
});
2、当有多个SDK都需要在MainActivity里处理的时候,可以让一个Activity继承另一个Activity。
3、第三方jar包里可能会有assets文件夹并且带有资源,这时候需要我们自己把jar包里的assets文件夹解压出来,
放到工程的Assets\Plugins\Android\assets 目录下,Unity在处理jar包的时候不会处理资源,只会处理.class文件。
4、接银联支付的SDK在assets文件夹下有data.bin文件一定要放入Unity工程里,否则会打不开银联充值。
5、安卓SDK主线程被阻塞的时候是没有办法和Unity通信的(顺网的SDK遇到过)。
6、不要过于相信SDK官方给的文档,最好直接看他们给的源码,也不要过于相信SDK渠道的源码,必要的时候jar包解开看看。
7、有需要把另外一个工程添加为引用的时候,可以直接把被引用工程里的资源拷贝到当前工程对应的文件夹下,效果一样的,开发的时候也会更方便。
8、
Error building Player: CommandInvokationFailure: Unable to convert classes into dex format. See the Console for details.
C:/Program Files/Java/jdk1..0_91\bin\java.exe -Xmx2048M -Dcom.android.sdkmanager.toolsdir="D:/AndroidSDK/sdk\tools" -Dfile.encoding=UTF8 -jar "C:/Program Files (x86)/Unity4.7.2/Editor/Data/BuildTargetTools/AndroidPlayer\sdktools.jar" -
遇到这种错误,一般都是有引用的jar包内容重复,仔细检查jar包。
9、Unity在5.0以后的版本里接安卓的SDK时,libs文件夹下针对相同的CPU架构的.so文件只需要一份就可以了,否则就会报如8所示的错误。一般情况下只保留(armeabi、armeabi-v7a、x86)文件夹即可。我测试的版本是Unity5.5.2(Coolpad的SDK).
Unity5.0之前的版本不受影响,我测试的是Unity4.6。如果有的SDK只有一个CPU架构的文件夹,可以根据自己项目需要自己添加对应的文件夹(VivoSDK2.2.1下如果不安装插件,官方只给了一个armeabi文件夹,游戏启动时会报错)
Android jniLibs下目录详解
10、有的渠道SDK文档里会贴心的让你使用 jar cvf main.jar * 这的命令打jar包,如果已经有了这个jar包放到Unity工程里就不需要在工程里手动导出的jar包放到Unity里了,实际上两种操作的结果是一样的,只是方式不同。如果都放进去就会出现8所示的错误。两只只留其一,我在Oppo的SDK里见过。
11、有些渠道SDK需要在Application里面调用,在Java工程里自己手动添加Application以后记得要在AndroidMenifest.xml上注册
<application
android:allowBackup="true"
android:hardwareAccelerated="true"
android:name="包名.YourApplicationName"
android:label="@string/app_name">
否则应用启动时不会调用该Application(靠谱助手和VivoSDK里遇到过)。
链接:http://www.jianshu.com/p/20757556099b
Unity接第三方SDK时遇到的坑的更多相关文章
- ionic2+集成第三方sdk时,合并多个清单文件的方法
具体方案android studio官网上已经给出,但需要架梯子,所以这篇文章直接把它搬到墙内,方便查看: 合并多个清单文件 合并优先级 合并冲突启发式算法 合并规则标记 节点标记 属性标记 标记选择 ...
- Unity利用Share SDK实现QQ、微信及微博第三方登录及定制内容分享(附代码)
最近因为公司的项目需要添加一些实用性的功能,需要添加第三方登录及分享,采用的是Mob的SDK,可以先到其官网下载对应的SDK 点击这里,为了方便后期进行数据统计和分析,所以可以先添加一个应用,添加成功 ...
- unity 引入 ios 第三方sdk
原地址:http://blog.csdn.net/u012085988/article/details/17785023 unity开发中ios应用时,要想成功引入第三方sdk,首先得知道c#与obj ...
- unity 引入 android第三方sdk
unity中调用java代码中介绍了unity调用android java代码的一些基础.引入android开发第三方sdk的操作跟调用java代码的操作相似,只是多了一步引入第三方jar. unit ...
- Unity导出xcode后自动化导入第三方SDK
最近因为在给项目接入第三方SDK,遇到了一个比较烦人的事情就是,每次出包都要重新根据第三方SDK说明设置xcode,每次最少花20分钟来设置,如果出错的话就不一定是20分钟的事了,所以我决定要做一个自 ...
- Unity 发布到IOS,Android的各种坑
Unity 发布到IOS的注意事项1.开发环境MAC环境:Xcode环境 7.2.1Unity环境:Unity5.32.基本说明首先,我说一下,这是我在对Unity发布到IOS的实际使用中,总结出来的 ...
- 2018年Unity结合Android SDK下载安装及配置教程
原文:2018年Unity结合Android SDK下载安装及配置教程 首先声明: Unity版本2017.1f3 最近试着在Unity中利用网易做AR开发时,发布项目文件需要发布到An ...
- Unity - 接入Android SDK
在网络上,关于Unity与Android如何进行交互,雨松MOMO大神已经有两篇文章简单介绍了如何操作(1)Unity3D研究院之打开Activity与调用JAVA代码传递参数(2)Unity3D研究 ...
- spring学习笔记---第三方SDK(Rest API)和Jaskson的巧用
前言: 其实我以前一直不懂电商, 以及电商中所涉及的业务概念. 对于SKU等名词, 觉得有些玄乎. 对其背后的数据模型, 也有莫名的未知恐惧感: 庞大而理不清头绪. 不过最近有机会接触了微商(有赞), ...
随机推荐
- [转]快速搞懂Gson的用法
原文地址:http://coladesign.cn/fast-understand-the-usage-of-gson/ 谷歌gson这个Java类库可以把Java对象转换成JSON,也可以把JSON ...
- 使用xcode 7 开发cocos2dx问题
使用xcode 7 开发cocos2dx问题 近期在学习cocos2dx使用xcode 7 bate 最为开发工具,由于xcode 7 能够不用增加开发人员就能真机測试啦,哈哈.可是当我创建好coco ...
- C#中的索引器
在Java中,一般会这样使用get,set方法: class Person{ private String name; public void setName(String name){ this.n ...
- 【C】——信号量 互斥锁 条件变量的区别
信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在semtake的时候,就阻塞在哪里).而互斥锁是用在多线程多任务互斥的,一个线程占用了某 ...
- windows下安装和配置多个版本的JDK
https://jingyan.baidu.com/article/47a29f2474ba55c015239957.html 如何在windows下安装和配置多个版本的jdk,本文将带你在windo ...
- CentOS 7系统LAMP配置PHP-FPM的示例
CentOS 7 系统出来有一段时间了,今天我们来看在vps中的 CentOS 7 中给lamp环境配置php-fpm的过程,希望文章可以帮助到各位. CentOS 7 已经发布,并且采用 Apach ...
- 使用python(command line)出现的ImportError: No module named 'xxx'问题
当你在python.exe直接输入 import test 时报出importerror: no module named 'test' ,这个错误时由于路径问题,sys并没有找到你输入的这个文件 解 ...
- 性能测试-Gatling(一)
背景说明转自 : http://www.infoq.com/cn/articles/new-generation-server-testing-tool-gatling/ 以前Jmeter用的多,如文 ...
- JSP之应用Servlet过滤器进行身份验证
1.Servlet过滤器的作用描述(1)在HttpServletRequest到达Servlet 之前,拦截客户的HttpServletRequest. 根据需要检查HttpServletReques ...
- 高斯分布与Gamma分布关系
https://math.stackexchange.com/questions/1917647/proving-ex4-3%CF%834