6

Android 2.3 で通知表示時にクラッシュするという報告を受けています。私が持っているスタックトレースは次のとおりです。

android.app.RemoteServiceException: Bad notification posted from package com.megadevs.hubi: Couldn't expand RemoteViews for: StatusBarNotification(package=com.megadevs.hubi id=1 tag=null notification=Notification(vibrate=null,sound=null,defaults=0x0,flags=0x62))
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1048)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:130)
    at android.app.ActivityThread.main(ActivityThread.java:3687)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:507)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
    at dalvik.system.NativeStart.main(Native Method)

Android 2.3 には AnimatedImageView に関する問題があることを読みましたが、使用しているとは思いません...通知を表示するために実行するコードは次のとおりです。

NotificationCompat2.Builder builder = new NotificationCompat2.Builder(getApplicationContext());
notification = builder.setOngoing(true)
    .setAutoCancel(false)
    .setPriority(NotificationCompat2.PRIORITY_DEFAULT)
    .setSmallIcon(notificationSmallIcon)
    .setWhen(System.currentTimeMillis())
    .setContentIntent(notificationIntent)
    .setContentTitle(downloads.elements().nextElement().getFileName())
    .setProgress(100, (int) downloadable.getDownload().getProgress(), false)
    .build();
startForeground(DL_NOTIFICATION, notification);

更新:
startForeground() で開始された通知を更新しようとすると、問題が発生することがわかりました。実行するコードは次のとおりです。

notification.contentView.setProgressBar(android.R.id.progress, 100, (int) download.getProgress(), false);
mNotificationManager.notify(DL_NOTIFICATION, notification);

しかし、ICS と JB では正しく動作するのに、なぜ Ginger で問題が発生するのでしょうか?

4

2 に答える 2

2

NotificationBuilder を使用して通知オブジェクトを作成しているため、通知を直接参照しないでください。

削除する:

 notification.contentView.setProgressBar(android.R.id.progress, 100, (int) download.getProgress(), false);

追加:

 builder.setProgress(int max, int progress, boolean indeterminate)

また、カスタム通知レイアウトを使用しているようです。ビルダーで使用する方法のドキュメントを参照してください http://developer.android.com/guide/topics/ui/notifiers/notifications.html

于 2013-01-29T02:13:01.290 に答える
0

android.view.InflateException のようなものを見ていますか? また、notificationSmallIcon を保管している場所を確認してください。png ファイルが drawable フォルダーに存在することを確認できますか? drawable-mdpiなどだけではありませんか?

アプリケーションの実行時に完全なログを投稿できますか。

于 2012-10-11T16:07:16.343 に答える