0

通知を頻繁に作成するアプリがあります。数十万人のユーザーが使用しています。通常、私は通知に問題はありませんが、この1人のユーザーは私が以下で追加した例外を取得しています。android.app.RemoteServiceException:不正な通知がパッケージから投稿されました

この例外を持つすべてのユーザーは

誰もがこれを引き起こしている可能性がありますどのような任意のアイデアを持っているの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) 

編集:レイアウト。私は大きなレイアウトと小さいレイアウトの2つのレイアウトを持っています。

小:

<?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"に気づき、私はので、私は、ユーザーANを送信するためにそこに行くんだということだった理由はわかりませんそれなしの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> 
+1

あなたは 'RemoteView'のレイアウトを投稿できますか? – azizbekian

+0

レイアウトを追加しました。また、奇妙なことに気がついたことを追加しましたが、 'android:scaleX =" - 1 "'と私は理由が分かりません。 – casolorz

+0

私は今なぜか分かります。そのボタンは他と同じですが、他の方向に向いているためです。 – casolorz

答えて

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> 

これまでこれまで使用してきたすべてのデバイスで動作します。見てください。

関連する問題