Unity在development模式下的一个坑

在Unity开发模式下,打包的应用在Nexus设备上遇到一个问题:当带有Input控件的界面关闭再打开时,输入法无法显示。经排查,发现在Development模式下UnityPlayer.smali文件中有额外代码导致此问题。这些代码涉及Window的flag设置,如FLAG_SHOW_WHEN_LOCKED和FLAG_DISMISS_KEYGUARD,可能影响了输入法界面的正常显示。这可能是Android的设计,也可能是Unity的bug。
摘要由CSDN通过智能技术生成

最近发现unity生成的包在Nexus上如果打开带Input控件的界面时,关闭屏幕再打开,则永远无法显示输入法界面了。

一开始还以为是unity自己本身的bug,后来发现release版本并无这个问题,于是弄了个最简单的测试版本分别打了

两个包,然后apktool解码对比发现,com/unity3d/player/UnityPlayer.smali在development模式下多了几行代码如下:

diff -r Untitled/smali/com/unity3d/player/UnityPlayer.smali keyboard/smali/com/unity3d/player/UnityPlayer.smali
310a311,355
>     iget-object v0, p0, Lcom/unity3d/player/UnityPlayer;->h:Landroid/content/ContextWrapper;

>     instance-of v0, v0, Landroid/app/Activity;

>     if-eqz v0, :cond_5

>     iget-object v0, p0, Lcom/unity3d/player/UnityPlayer;->h:Landroid/content/ContextWrapper;

>     check-cast v0, Landroid/app/Activity;

>     invoke-virtual {v0}, Landroid/app/Activity;->getWindow()Landroid/view/Window;

>     move-result-object v0

>     con

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值