【问题标题】:Widgets gone after app update应用更新后小部件消失了
【发布时间】:2014-06-02 10:09:05
【问题描述】:

更新我的应用后,有时所有旧小部件都会从主屏幕上消失。 在应用启动器/小部件选择器中,我的三个小部件出现了两次 - 直到重新启动!

有什么建议吗?

【问题讨论】:

  • 我的应用用户报告了同样的问题[应用更新后小部件消失]。但是,我无法复制自己。 (两份报告恰好是三星设备:Note 3 和 S4)。您可以在哪些设备上重现?
  • 这些用户报告了错误:Note 3 与 4.4.2,S4 与 4.4.2。 Android 4.4.2 似乎有错误。因为用户也向我报告了我的小部件的其他问题。
  • 我的用户报告了完全相同的问题。设备:Galaxy S3、S4、Note3。有没有人关于这个问题的任何消息 - 代码错误或 Android 中的错误?
  • 这可能是 Touchwiz 4.4.2 启动器中的一个错误,请参阅 Beautiful Widgets 作者的报告:levelupstudio.com/en/blog-en/…
  • 今天我收到了来自非三星设备用户的第一份报告 - HTC eve one (m8)。所以,我不确定 Touchwiz 启动器。

标签: android widget


【解决方案1】:

On this page有一篇长文讲这个问题。

问题的核心似乎是这样的:

重要的是我们使用自己的密钥来更新小部件 行动,如果我们使用 AppWidgetManager.EXTRA_WIDGET_IDS 我们不仅 破坏我们自己的小部件,但也破坏其他小部件。

很遗憾,我的代码不受此问题的影响,但我仍有用户报告此问题。 还发现this report

【讨论】:

  • 试图用我自己的 EXTRA_ID 替换所有 'AppWidgetManager.EXTRA_WIDGET_ID'。这没有帮助。三星启动器的问题....
  • 解释神秘案例和解释不使用EXTRA_WIDGET_IDS的链接是关于一个非常不同的问题,它解释了“小部件在那里,你可以长按并移动它,但它不会显示任何东西”。我相信 OP 是关于在每次(付费)应用更新时将小部件从启动器中完全删除。
【解决方案2】:

将 S4 升级到 android lollipop 后,我的小部件消失了。偶然发现,如果你双击左软键,屏幕底部会有一个小部件图标。点击图标打开小部件,它们都在那里!

【讨论】:

    【解决方案3】:

    这是一个操作系统错误,因为它更新应用程序的方式,使它们在相当长的一段时间内不可用。如果启动器在此期间更新小部件,它可能会关闭它们,除非它实施了特定的变通方法来避免这种情况。

    请注意这里的问题,以便(也许)Google 考虑修复它:https://code.google.com/p/android/issues/detail?id=188137

    【讨论】:

      【解决方案4】:

      如果您更改会破坏升级的小部件的确切软件包路径,并且小部件将在升级时消失

      【讨论】:

        【解决方案5】:

        This question give us a solution.

        我们正在使用 MvvmCross 实现 Xamarin.Android 项目。该项目使用小部件,并且在应用更新时小部件消失了。链接中提到的问题为我们提供了找到解决方案的路径,我们使用APK-Analyzer 来分析新旧 APK 之间的差异,并通过查看 AndroidManifiest.xml 文件发现使用的 AppWidgetProvider 具有不同的包名称.通过搜索更多我们找到了release note from Microsoft 其中说:

        此版本中生成的 Java 类型的名称有所不同。任何明确使用以 md5 开头的旧名称之一的项目都需要手动更新以解决此更改。有关详细信息,请参阅下面生成的 Java 类型名称的重大更改。

        并通过替换以下内容来定义常量名称:

        [BroadcastReceiver(Label = "Widget Title")]
        public class CustomProvider : AppWidgetProvider
        

        [BroadcastReceiver(Label = "Widget Title", Name = "<old package name>.CustomProvider")]
        public class CustomProvider : AppWidgetProvider
        

        问题解决了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2022-06-13
          • 2018-04-15
          • 2023-04-09
          • 2020-05-04
          • 1970-01-01
          • 1970-01-01
          • 2012-06-02
          相关资源
          最近更新 更多