我在Unity上构建一个Android游戏,它有一个按钮可以打开一个新活动。
问题在于构建APK时,无论我在自定义AndroidManifest.xml中放置什么,Unity都会覆盖它并将com.unity3d.player.UnityPlayerActivity
的android:launchMode设置为singleTask
。
这导致以下情况:打开游戏,点击打开活动的按钮,点击主页按钮转到后台,使用图标重新启动应用程序 - 新活动被销毁,而我看到相同的主要内容UnityPlayerActivity(它与原始版本相同 - 没有重新创建)。
为了解决这个问题 - 我必须创建apk,使用apktool对其进行反编译,对android:launchMode=0
进行反编译com.unity3d.player.UnityPlayerActivity
(这意味着standard
代替singleTask
),重新编译它,重新签名,然后才安装它。
这显然是彻底的黑客攻击,无法用作实际解决方案。我需要找到一种方法来设置android:launchMode
我自己。
我该怎么做?
答案 0 :(得分:1)
在调查了该问题之后,我发现出现此问题的原因是Unity将AndroidManifest.xml上的launchMode设置为UnityPlayerActivity为singleTask。
应用启动新活动时(在launchMode:singleTask实例中)在重新启动时关闭。
无论我们在自定义AndroidManifest.xml中设置什么,Unity都将其覆盖为singleTask,并且根据官方的Unity文档-Unity仅支持launchMode:singleTask。