U3D 接入Android SDK 后,运行游戏闪退问题

最近在给手头的Unity项目接入QQ的Android SDK。

市面上常见的SDK,通常都只有Android和iOS原生的版本,并没有封装好的Unity插件的版本。

翻看了网上流传甚广的教程,接入SDK的方式是新建Android项目,写自己的Activity继承自UnityPlayerActivity类,在其中添加用于沟通SDK的接口,然后配置AndroidManifest.xml文件,打包后倒入Unity。(详细过程请自己搜索 Unity3D android SDK)。

这样做法的原理是,通过配置AndroidManifest,我们用我们自己创建的UnityPlayerActivity子类,代替了直接在Unity生成Android应用时生成的UnityPlayerActivity。因为我们的类继承了UnityPlayerActivity,所以类中除了具有我们附加的沟通SDK的方法之外,用于支持Unity启动和运行的功能依然存在。


在教程中,有一步是将Android项目中的AndroidManifest.xml拷贝到Unity中。

这一步是有问题的!

我们在AndroidManifest.xml中,只是添加了负责启动和开始运行游戏的UnityPlayerActivity子类。

这会导致我们直接打包出的游戏,在进入游戏,弹出Unity3D图标(如果使用的是免费版Unity)后,自动退出。

在Log中只能看见 onDestroy这样的内容,没有任何出错警告信息。


解决方法:

在添加SDK之前,将Unity项目导出Google Android Project。然后查看导出的AndroidManifest.xml。

你发现除了用于启动的<activity></activity>,还有一个叫做 UnityVideoPlayer的Activity。

只需要把这个activity的配置复制粘贴到我们的项目中,便可以解决闪退的问题。

(最好将我们自己写的AndroidManifest.xml加上导出AndroidManifest.xml中关于权限、应用theme的配置语句)。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值