安卓 Lollipop : Launcher crashes when adding app widget to Home Screen

标签 android android-appwidget

添加小部件时,启动器在 Android Lollipop 上崩溃并显示以下消息 (它在以前的 Android 版本上运行良好):

编辑:这只发生在横向。

12-16 12:35:10.208: E/AndroidRuntime(960): 
java.lang.RuntimeException: Unable to resume activity {com.android.launcher/com.android.launcher2.Launcher}: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=5, result=-1, data=Intent { (has extras) }}  to activity {com.android.launcher/com.android.launcher2.Launcher}: java.lang.NullPointerException:      Attempt to read from field 'android.content.pm.ActivityInfo     
android.appwidget.AppWidgetProviderInfo.providerInfo' on a null object reference
12-16 12:35:10.208: E/AndroidRuntime(960):  at 
android.appwidget.AppWidgetHostView.getRemoteContext(AppWidgetHostView.java:465)
12-16 12:35:10.208: E/AndroidRuntime(960):  at   
android.appwidget.AppWidgetHostView.updateAppWidget(AppWidgetHostView.java:376)
12-16 12:35:10.208: E/AndroidRuntime(960):  at com.android.launcher2.LauncherAppWidgetHostView.updateAppWidget(LauncherAppWidgetHostView.java:54)
12-16 12:35:10.208: E/AndroidRuntime(960):  at android.appwidget.AppWidgetHost.createView(AppWidgetHost.java:325)
12-16 12:35:10.208: E/AndroidRuntime(960):  at com.android.launcher2.Launcher.completeTwoStageWidgetDrop(Launcher.java:703)
12-16 12:35:10.208: E/AndroidRuntime(960):  at  com.android.launcher2.Launcher.onActivityResult(Launcher.java:664)

这是提供者信息:

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
  android:minWidth="201dp"
  android:minHeight="201dp"
  android:updatePeriodMillis="180000"
  android:initialLayout="@layout/appwidget_week"
  android:configure="com.example.myApp.Widgets.Configure.WidgetConfigure_Week"
  android:resizeMode="horizontal|vertical"
  android:previewImage="@drawable/widget_screenshot_week" 
  android:label="@string/widget_week">
</appwidget-provider> 

和 list :

    <receiver
        android:name="com.example.myApp.Widgets.Provider.WidgetProvider_Week"
        android:enabled="@bool/is_above_version_3_1"
        android:label="@string/widget_week" >
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
        </intent-filter>

        <meta-data
            android:name="android.appwidget.provider"
            android:resource="@xml/appwidget_week_provider_info" />
    </receiver>

最佳答案

我在 Marshmallow 上发生了类似的崩溃。我的崩溃发生在用于配置主屏幕小部件的 Activity 中更改屏幕方向时(如果方向未更改,则不会发生在任何方向)。

澄清一下:屏幕旋转时并没有立即发生崩溃。相反,它发生在用户完成配置小部件、退出 Activity 并且 Android 正在创建主屏幕小部件之后。

这也导致创建“幻影小部件”(即不出现在屏幕上但存在于 Android 内部的小部件)。

我能够通过在设备旋转时强制小部件配置 Activity 保持纵向模式来解决它。如此处所述:

Force "portrait" orientation mode

关于安卓 Lollipop : Launcher crashes when adding app widget to Home Screen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27503926/

相关文章:

android - EGL 错误 : EGL_BAD_ALLOC in my app after Nexus 10 update to Android 4. 4

android - 应用程序小部件中的 ViewFlipper

java - Android InflaterInputStream 是否与流行的 ZLIB Windows 库相同?

android - FileObserver 实例正在被垃圾收集

android - Marshmallow权限模型Airbnb中AccountManager getAccounts()异常,他们是怎么做到的?

android - Android App Widgets 是运行在应用进程还是宿主进程?

android - 在 Android 中从 GCM 创建新通知时如何在自定义锁定屏幕中显示应用程序图标

android - 从小部件列表中拖动时阻止小部件 onUpdate onReceive?

java - 如何从 registerReceiver 内部类获取变量的值

android - ListView Multiselect onCreateActionMode 导致出现 2 个 Actionbars