前几天楼主接了android平台的SDK,接入时的步骤基本上时按照Momo大神的Unity调用Android步骤去操作的。
在这里就不再复述那些步骤了。
详细的接入方法可以查看:Unity3D调用Android
在此,写出我接这个SDK时的一些心得吧!废话不多说,细节在下文
1.在Eclipse平台新建安卓工程的时候,除了Theme不需要太注意之外的其它地方都需要和Unity PlayerSetting对应上。
![](https://i-blog.csdnimg.cn/blog_migrate/2c09923f6a202e9f2c5139c1e96871e4.webp?x-image-process=image/format,png)
2.配置AndroidManisest.xml
![](https://i-blog.csdnimg.cn/blog_migrate/8c688054c5f155a10b1a049a87c5d472.webp?x-image-process=image/format,png)
3.打包.class 为 jar
在安卓工程中建议先清理clean一次,然后再build一次工程会比较保险
进入工程的bin下面删掉下面标记的内容后在使用命令生成 jar
![](https://i-blog.csdnimg.cn/blog_migrate/6309f52a2cc527ebcccf24c9c0a28dce.webp?x-image-process=image/format,png)
生成jar包的命令 jar-cvf class.jar *
注意点:
1). class.jar 是你要生成的jar包的名称,这个名称在Untiy中没有任何影响,可以任意取名
2). 打成的jar包可以用压缩工具解压缩看与包名的路径是否能对应上。建议直接进入到 cd class后使用生成命令
至此调用android命令就告一段落了。
到此结束了吗?当然没有。
还有点常见的错误贡献给大家
1.Unity调用android提示找不到方法
![](https://i-blog.csdnimg.cn/blog_migrate/443367ee3319f287089085a39cd3e664.webp?x-image-process=image/format,png)
这种情况是比较多是出现在
1).调用的方法所在的类没有继承UnityActivity
2).Unity工程中路径错了,检查下名字吧
3).方法签名对不上
eg:
android code:public void getPos();
c# code: jo.Call("getPos",null); //这段代码会调用有 getPos(Object obj) 的方法。
2. 游戏闪退
在登录游戏时出现闪退并且是移除掉SDK就正常的情况,绝大部分的可能性是android的配置文件 AndroidManisest.xml
与Unity的PlayerSetting不一致导致的
3.Unity调用Android时游戏报错
错误信息如下:V/MainActivity Error(30714): Attempt to read from field 'android.os.MessageQueue android.os.Looper.mQueue' on a null object reference
报错的原因是在非Looper线程中获取Looper,如果需要深入研究可以去看Android的Handler机制
解决办法是:把执行代码段使用runOnUiThread方法 (这个方法可以直接在继承于UnityPlayerActivity的类中调用)
![](https://i-blog.csdnimg.cn/blog_migrate/5fb9bcdf3df9b042c3578b39c8b7ecf3.webp?x-image-process=image/format,png)
至此分享就结束了。如果有新内容我会继续在这里追加,请大家关注。