gpt4 book ai didi

android - 首次恢复时 Adob​​e AIR 24+ Android 黑屏

转载 作者:太空宇宙 更新时间:2023-11-03 11:01:00 25 4
gpt4 key购买 nike

我知道多年来有很多关于 AIR 的黑屏报告,但我觉得我遇到了一些截然不同的事情。我一直在调试一个 Android 特定问题,它让我遇到了一些我需要帮助的问题,因为 Android 不是我的强项...

采用 Starling 应用程序并升级到 AIR 24+,Android 现在仅在应用程序的第一个 恢复时出现黑屏。第一次恢复时,我看到黑屏,顶部有状态栏,游戏在后台运行(调试器连接和音乐播放)。但是,我无法与游戏互动(正如其他黑屏线程中所报告的那样)。现在有趣的部分是,如果您强行停止应用程序并重新启动,初始加载和所有后续暂停恢复操作将完美运行,不会出现黑屏。无论是调试版本还是发布版本,以及如何/从何处启动应用程序都无关紧要。

我已经遍历了每一个黑屏线程,但没有任何效果。我正在执行所有 onActivate/onDeactivate stage.quality 技巧、containsVideo 标签等。我看到了使用 singleTop launchMode 的建议,这似乎确实可以解决问题。但是,我需要使用 Android launchMode 标准来维护 Activity 堆栈(用于 facebook 登录等)。

断定这可能不是典型的黑屏问题后,我开始使用 adb shell 调查 Android Activity 状态,并且发现了一些有趣的事情。运行“adb shall dumpsys activity” 我一直在比较我的应用程序在 AIR 23 和 AIR 24+ 构建之间的 Activity Intent 任务,并注意到一些奇怪的差异。以前,无论它处于什么状态,我的应用程序 Intent 都会以两个标志(NEW_TASK 和 RESET_TASK_IF_NEEDED)运行。但是,在 AIR 24+ 中,在第一次暂停时, Activity 正在失去它的 bnds(我认为这是屏幕坐标绑定(bind)???) 并且 Intent 标志正在丢失 RESET_TASK_IF_NEEDED 值。

我已经在下面复制了相关的 adb 输出(抱歉,代码块似乎最易读)...

AIR 23 构建在三个测试的游戏状态(首次启动后、首次暂停后和首次恢复后)中,任务列表保持不变(除了在堆栈之间移动):

Task id #801
TaskRecord{eb77f80 #801 A=air.com.toystudio.casinotower U=0 sz=1}
Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=air.com.toystudio.casinotower/.AppEntry VirtualScreenParam=Params{mDisplayId=-1, null, mFlags=0x00000000)} bnds=[1698,944][1998,1186] (has extras) }
Hist #0: ActivityRecord{649aa75 u0 air.com.toystudio.casinotower/.AppEntry t801}
Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=air.com.toystudio.casinotower/.AppEntry VirtualScreenParam=Params{mDisplayId=-1, null, mFlags=0x00000000)} bnds=[1698,944][1998,1186] (has extras) }
ProcessRecord{aa9a5f3 16332:air.com.toystudio.casinotower/u0a382}

AIR 24+ 版本首次启动后:(一切看起来都和 AI​​R 23 一样)

Task id #787
TaskRecord{1f215a7 #787 A=air.com.toystudio.casinotower U=0 sz=1}
Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=air.com.toystudio.casinotower/.AppEntry VirtualScreenParam=Params{mDisplayId=-1, null, mFlags=0x00000000)} bnds=[1698,944][1998,1186] (has extras) }
Hist #0: ActivityRecord{6d91889 u0 air.com.toystudio.casinotower/.AppEntry t787}
Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=air.com.toystudio.casinotower/.AppEntry VirtualScreenParam=Params{mDisplayId=-1, null, mFlags=0x00000000)} bnds=[1698,944][1998,1186] (has extras) }
ProcessRecord{b3c48a8 596:air.com.toystudio.casinotower/u0a375}

就在第一次暂停之后:(注意 'flg' 的变化和现在丢失的 'bnds'。还要注意任务 ID 不同,因为输出来自不同的测试)

Task id #798
TaskRecord{87c1429 #798 A=air.com.toystudio.casinotower U=0 sz=1}
Intent { act=android.intent.action.MAIN flg=0x10000000 cmp=air.com.toystudio.casinotower/.AppEntry VirtualScreenParam=Params{mDisplayId=-1, null, mFlags=0x00000000)} }
Hist #0: ActivityRecord{148e44 u0 air.com.toystudio.casinotower/.AppEntry t798}
Intent { act=android.intent.action.MAIN flg=0x10000000 cmp=air.com.toystudio.casinotower/.AppEntry VirtualScreenParam=Params{mDisplayId=-1, null, mFlags=0x00000000)} }
ProcessRecord{38791ba 14679:air.com.toystudio.casinotower/u0a381}

就在第一次恢复之后(黑屏但游戏正在运行):(现在一切都乱七八糟了。我不知何故列出了两个 Activity ,都有不正确的标志,只有一个有窗口绑定(bind))

Task id #785
TaskRecord{c0a012d #785 A=air.com.toystudio.casinotower U=0 sz=2}
Intent { act=android.intent.action.MAIN flg=0x10000000 cmp=air.com.toystudio.casinotower/.AppEntry VirtualScreenParam=Params{mDisplayId=-1, null, mFlags=0x00000000)} }
Hist #1: ActivityRecord{924bd86 u0 air.com.toystudio.casinotower/.AppEntry t785}
Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10600000 cmp=air.com.toystudio.casinotower/.AppEntry VirtualScreenParam=Params{mDisplayId=-1, null, mFlags=0x00000000)} bnds=[1698,944][1998,1186] (has extras) }
ProcessRecord{df8d47f 31595:air.com.toystudio.casinotower/u0a375}
Hist #0: ActivityRecord{38d61a1 u0 air.com.toystudio.casinotower/.AppEntry t785}
Intent { act=android.intent.action.MAIN flg=0x10000000 cmp=air.com.toystudio.casinotower/.AppEntry VirtualScreenParam=Params{mDisplayId=-1, null, mFlags=0x00000000)} }
ProcessRecord{df8d47f 31595:air.com.toystudio.casinotower/u0a375}

这是我的核心 Android Activity xml:

<activity 
android:excludeFromRecents="false"
android:launchMode="standard">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter>
<data android:scheme="casinotower" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>

一旦您强制关闭并再次开始使用该应用程序,任务时间线就会与 AIR 23 构建相匹配。我正在寻找关于第一次暂停我的 flg 和 bnds 状态时可能发生的事情的建议。我经营过许多 ANE,但他们之前都没有这样做过。同样,Android 不是我的强项,所以我不确定这是否是正确的功能,但它肯定看起来明显不正确,我不确定从这里去哪里。虽然在我看来 AIR 24 中的某些更改正在破坏我的应用程序,但我想确保我没有做错任何事情。

很高兴提供任何额外的信息,我很感激任何想法!

最佳答案

这是我搜索了几个小时后所做的:

<activity android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>

launchMode 更改为 "singleTop"

关于android - 首次恢复时 Adob​​e AIR 24+ Android 黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42908456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com