Unity 接入 Android

前几天楼主接了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的类中调用)


 至此分享就结束了。如果有新内容我会继续在这里追加,请大家关注。

猜你喜欢

转载自blog.csdn.net/biospc/article/details/75332270