1.在AndroidStudio中添加Unity3D中的class.jar
AndroidStudio导出Jar包,在网上基本都是这样写的:新建AndroidStudio工程,然后新建一个Module,然后把Unity安装目录下的class.jar包丢到AndroidStudio中新建的Module的libs中,然后右键这个Module,选择Open Module Setting,找到新建的Modlue,然后选择Dependencies,添加libs中的class.jar。
2.在AndroidStudio中导出jar设置
假设都按1中的操作成功导入class.jar文件后,在AndroidStudio中新建Module下的路径:src→main→java→包名新建一个java class:如下图
本文中新建的java class暂且叫UnityAndroidBridge,然后对UnityAndroidBridge进行编写,继承
UnityPlayerActivity,然后在新建的Module里面的Build.gradle的最末尾对导出的jar包进行一些拷贝和重命名:
3.AndroidManifest.xml文件的编写(很关键,非常的关键)
之前在网上找资料,发现他们在新建的那个java.class的时候,都是默认的使用MainActivity,然后继承UnityPlayerActivity,OK,此时如果在AndroidManifest.xml中的写法为
<activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
那么导出的jar包,看起来OK,但是我在我的设备RK3399的板子上测试,跑个十分几分钟就会闪退,而且这种闪退用腾讯Bugly或者android自带的crash机制也无法捕捉到。最后经过无数次怀疑人生的测试之后发现:
这样才不会崩溃,即使崩溃了用能捕捉到日志,所以,我只能说针对RK3399的板子,这样处理才完美解决闪退问题,晚上的普遍的做法,在华为的手机也出现过闪退。此文章谨记蛋疼的调试测试过程。