我注意到一份关于生产的奇怪崩溃报告。我试图查找它,但我没有在源代码中找到任何东西。对我来说,这些设备的供应商似乎只是在他们的 SDK 中修改了一些东西。
但它发生在支持库中。那么这怎么会发生呢?
堆栈跟踪:
Fatal Exception: java.lang.NoSuchMethodError: No interface method build()Landroid/app/Notification; in class Landroid/support/v4/app/NotificationBuilderWithBuilderAccessor; or its super classes (declaration of 'android.support.v4.app.NotificationBuilderWithBuilderAccessor' appears in /data/app/com.myapp-1/base.apk)
at android.support.v4.app.NotificationCompat$BuilderExtender.build(NotificationCompat.java:469)
at android.support.v4.app.NotificationCompat$NotificationCompatImplApi21.build(NotificationCompat.java:768)
at android.support.v4.app.NotificationCompat$Builder.build(NotificationCompat.java:1559)
at com.myapp.NotificationListener$MyNotification.updateText(MyNotification.java:106)
发生的代码:
Builder mBuiler = new NotificationCompat.Builder(mContext);
...
private Notification updateText(String title, String message) {
return mBuidler
.setContentTitle(title)
.setContentText(message)
.setStyle(new BigTextStyle(mBuidler)
.bigText(message))
.build();
}
主要在以下设备上复制:
- 三星 SM-G925F
- 三星 SM-G935F
- 三星 GT-I9300
- 一些联想设备
- Solarin 手机(不管它是什么)
操作系统:
- 安卓 6 - 95%
- 安卓 4 - 3%
- 安卓 5 - 2%