Launcher / Main活动在清单中发生了变化,更新后的用户使用自定义操作系统启动器(即:dodol Launcher)报告了他们的快捷方式,其中包含消息" App未安装"。
这是一个大问题,因为许多人只是在混乱中卸载应用程序。
根据我的理解,发生的事情是发射器捕获了一些关于快捷方式的其他信息,当它看到与清单中的启动器活动不匹配时,它认为应用程序不再存在。
这显然是一个自定义启动器问题,但似乎广泛传播到需要解决这个问题。
我正在尝试设置旧的&作为MAIN / LAUNCHER的新活动,看看这是否有任何影响。
是否有其他人遇到过类似的问题,如果有的话,是否有任何建议的策略来解决这个问题?
感谢。
答案 0 :(得分:2)
以下是我解决这个问题的方法。我将LoginActivity
作为主要发布活动:
<activity android:name=".activities.LoginActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>
我们不得不重做一些逻辑,主要是我们的MAIN活动是如何开始的。我们最终创建了虚拟LauncherActivity
并将用户带到应用内部或LoginActivity
。因此,在完成之后,我们在升级后得到完全相同的问题。幸运的是我在发布之前抓住了它。 “应用未安装”。
解。使用activity-alias
,进行一些修补,如果我们需要重命名LoginActivity
,我不能100%确定。但是我们确实将它重命名为SignInActivity
,这里是清单中的结束配置,对我们有效。
<activity android:name=".activities.LauncherActivity" android:noHistory="true" android:theme="@android:style/Theme.NoDisplay" />
<!-- Don't brake 2.7.2->3.0.0 shortcuts, keep ALIAS for old way to access app -->
<activity-alias android:name=".activities.LoginActivity" android:targetActivity=".activities.LauncherActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>
<activity android:name=".activities.SignInActivity" />
指向此处 - 我们保留旧签名,但“重新路由”启动器以使用我们的新LauncherActivity