Android打包aar到Unity产生的warning
2017-08-01 本文已影响30人
想入飞飞___
把Android项目作为一个library打包成aar,然后把aar放到Unity中运行的时候会抛出一个warning,刚开始没注意,后来越来越多,引发的原因是下面这行代码
UnityPlayer.UnitySendMessage("GameManager","currentOrientationToUnity",json.toString());
这行代码本身并没有错误,而是因为在Application的子类中写了启动定位和方向传感器的代码,传感器会随着Application子类初始化而执行UnitySendMessage,Application是一个App最先初始化的一个类,它会比Activity先启动,也就是说,当UnitySendMessage开始向Unity传消息的时候,并没有去任何方法去接收它,Activity也都没有创建,Unity呈现所有的视图都是FrameLayout的子类,也是放在Activity中的,也遵循这一原理。
总结:UnitySendMessage()方法必须在Android的四大组件中,而不应该写在Applicatiion中,如果写在Application中则会出现warning了。Unity编译出来的也是一个apk,跑在Android平台上,所以它还是遵循着Android的一些原理的。