前几天楼主接了android平台的SDK,接入时的步骤基本上时按照Momo大神的Unity调用Android步骤去操作的。
在这里就不再复述那些步骤了。
详细的接入方法可以查看:Unity3D调用Android
在此,写出我接这个SDK时的一些心得吧!废话不多说,细节在下文
1.在Eclipse平台新建安卓工程的时候,除了Theme不需要太注意之外的其它地方都需要和Unity PlayerSetting对应上。
2.配置AndroidManisest.xml
3.打包.class 为 jar
在安卓工程中建议先清理clean一次,然后再build一次工程会比较保险
进入工程的bin下面删掉下面标记的内容后在使用命令生成 jar
生成jar包的命令 jar-cvf class.jar *
注意点:
1). class.jar 是你要生成的jar包的名称,这个名称在Untiy中没有任何影响,可以任意取名
2). 打成的jar包可以用压缩工具解压缩看与包名的路径是否能对应上。建议直接进入到 cd class后使用生成命令
至此调用android命令就告一段落了。
到此结束了吗?当然没有。
还有点常见的错误贡献给大家
1.Unity调用android提示找不到方法
这种情况是比较多是出现在
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的类中调用)
至此分享就结束了。如果有新内容我会继续在这里追加,请大家关注。