我有一个应用程序,每隔一段时间就会创建通知。它被几十万用户使用。通常我对通知没有任何问题,但是这个用户正在获得我在下面添加的例外情况。
具有此例外的所有用户都拥有安装Android 4.4.4的TCL手机
任何人都知道可能导致这种情况的原因是什么?
感谢。
Fatal Exception: android.app.RemoteServiceException: Bad notification posted from package mypackage: Couldn't expand RemoteViews for: StatusBarNotification(pkg=mypackage user=UserHandle{0} id=74219 tag=null score=10: Notification(pri=1 contentView=mypackage/0x7f0400a2 vibrate=null sound=null defaults=0x0 flags=0x62 kind=[null]))
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1366)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5095)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
at dalvik.system.NativeStart.main(NativeStart.java)
编辑:布局。我有两个布局,一个大,一个小。
小:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/notification"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="horizontal"
>
<ImageView
android:id="@+id/image"
android:layout_width="@dimen/notification_image_size_small"
android:layout_height="@dimen/notification_image_size_small"
android:layout_gravity="center_vertical"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:scaleType="centerCrop"
android:src="@drawable/drawable0"/>
<TextView
android:id="@+id/title"
style="@style/title_style"
android:text="title"></TextView>
<ImageView
android:id="@+id/button1"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_gravity="center"
android:background="@drawable/ripple"
android:clickable="true"
android:scaleType="center"
android:src="@drawable/drawable1"
android:text="@string/text1"
android:contentDescription="@string/test1"
/>
<ImageView
android:id="@+id/button2"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_gravity="center"
android:background="@drawable/ripple"
android:clickable="true"
android:scaleType="center"
android:src="@drawable/drawble2"
android:text="@string/text2"
android:contentDescription="@string/test2"
/>
<ImageView
android:text="@string/text3"
android:contentDescription="@string/text3"
android:id="@+id/button3"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_gravity="center"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:background="@drawable/ripple"
android:clickable="true"
android:scaleType="center"
android:src="@drawable/drawable3"></ImageView>
</LinearLayout>
大
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/notification"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="110dp"
android:background="@color/white"
android:clickable="true"
android:focusable="true"
android:foreground="@drawable/ripple_rect"
android:orientation="horizontal">
<ImageView
android:id="@+id/image"
android:layout_width="@dimen/notification_image_size_big"
android:layout_height="match_parent"
android:layout_gravity="center"
android:scaleType="centerCrop"
android:src="@drawable/drawable0_big"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="32dp"
android:layout_marginLeft="12dp"
android:layout_marginRight="8dp"
android:layout_marginTop="8dp"
android:orientation="horizontal">
<TextView
android:id="@+id/title"
android:text="title"
style="@style/title_style"></TextView>
<ImageView
android:id="@+id/button1"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_gravity="center_vertical"
android:background="@drawable/ripple"
android:clickable="true"
android:scaleType="center"
android:src="@drawable/drawable1"/>
</LinearLayout>
<LinearLayout
android:id="@+id/buttons"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginTop="12dp"
android:orientation="horizontal"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal"></LinearLayout>
<ImageView
android:id="@+id/button2"
style="@style/buttons_style"
android:src="@drawable/drawable2"
android:text="@string/text2"
android:contentDescription="@string/text2"
/>
<LinearLayout
android:id="@+id/spacer1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal"></LinearLayout>
<ImageView
android:id="@+id/button3"
style="@style/buttons_style"
android:src="@drawable/drawable3"
android:text="@string/text3"
android:contentDescription="@string/text3"
/>
<LinearLayout
android:id="@+id/spacer2"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal"></LinearLayout>
<ImageView
android:id="@+id/button4"
style="@style/buttons_style"
android:src="@drawable/drawable4"
android:text="@string/text4"
android:contentDescription="@string/text4"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal"></LinearLayout>
<ImageView
android:id="@+id/button5"
style="@style/buttons_style"
android:scaleX="-1"
android:src="@drawable/drawable5"
android:text="@string/text5"
android:contentDescription="@string/text5"
/>
<LinearLayout
android:id="@+id/spacers3"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal"></LinearLayout>
<ImageView
android:id="@+id/button6"
style="@style/buttons_style"
android:src="@drawable/drawable6"
android:text="@string/text6"
android:contentDescription="@string/text6"
/>
<LinearLayout
android:id="@+id/spacer4"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal"></LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
在添加该布局时,我注意到我有那个,因为它是面向另一个方向的相同图像。我会看看是否可以替换它以防万一。 android:scaleX="-1"
并且我不知道为什么我有那个,所以我将向用户发送没有它的apk。
编辑:向用户发送没有android:scaleX="-1"
的新版本,但崩溃仍然发生。
编辑:添加涟漪抽象。由于用户是4.4,他们会得到这些:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/color_primary_translucent" android:state_focused="true"/>
<item android:drawable="@color/color_primary_light_translucent" android:state_pressed="true"/>
<item android:drawable="@android:color/transparent"/>
</selector>
和
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/color_primary_translucent" android:state_focused="true"/>
<item android:drawable="@color/color_primary_light_translucent" android:state_pressed="true"/>
<item android:drawable="@android:color/transparent"/>
</selector>
答案 0 :(得分:0)
我建议从布局中删除所有背景纹波和前景涟漪,并在通知中保留涟漪。
在通知布局中。
<ImageButton
android:id="@+id/notification_base_previous"
style="@style/NotificationAction.Previous"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
现在在清单中声明样式。
这适用于您的个人按钮。
<style name="NotificationAction.Previous" parent="@style/NotificationAction">
<item name="android:src">@drawable/btn_playback_previous_light</item>
</style>
这应该是风格的父母。
<style name="NotificationAction">
<item name="android:layout_width">@dimen/notification_action_width</item>
<item name="android:layout_height">@dimen/notification_action_height</item>
<item name="android:gravity">center|right</item>
<item name="android:scaleType">fitCenter</item>
<item name="android:padding">@dimen/notification_action_padding</item>
<item name="android:background">?android:selectableItemBackground</item>
</style>
它适用于我目前使用的所有设备。请看看。