Android 如何在具有API 15的设备上调用Notification Builder.build()?
我的设备是galaxy s2,上面有API 15。 我的程序有min sdk api 11和target sdk api 19。 它使用Notification builder并在模拟器中运行良好。 试图在设备上运行Android 如何在具有API 15的设备上调用Notification Builder.build()?,android,Android,我的设备是galaxy s2,上面有API 15。 我的程序有min sdk api 11和target sdk api 19。 它使用Notification builder并在模拟器中运行良好。 试图在设备上运行 03-04 09:51:47.503: E/AndroidRuntime(16416): FATAL EXCEPTION: main 03-04 09:51:47.503: E/AndroidRuntime(16416): java.lang.NoSuchMethodError:
03-04 09:51:47.503: E/AndroidRuntime(16416): FATAL EXCEPTION: main
03-04 09:51:47.503: E/AndroidRuntime(16416): java.lang.NoSuchMethodError: android.app.Notification$Builder.build
03-04 09:51:47.503: E/AndroidRuntime(16416): at com.myprogram.NotifyActivity.onReceive(NotifyActivity.java:60)
03-04 09:51:47.503: E/AndroidRuntime(16416): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2130)
03-04 09:51:47.503: E/AndroidRuntime(16416): at android.app.ActivityThread.access$1500(ActivityThread.java:127)
03-04 09:51:47.503: E/AndroidRuntime(16416): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1208)
03-04 09:51:47.503: E/AndroidRuntime(16416): at android.os.Handler.dispatchMessage(Handler.java:99)
如果我理解正确的话,android文档要求以可能的最高版本为目标,并为具有较低api的设备使用支持库。我根据java.lang.NoSuchMethodError上的说明安装了支持库,表明编译期间类路径中存在
android.app.Notification$Builder.build
方法,但在设备上运行应用程序期间不存在。您的run you应用程序是否已在其他设备中运行?可能Samsung更改了该类的实现。Builder.build()从API级别16开始提供
使用以下方法创建通知
@SuppressLint("NewApi")
@SuppressWarnings("deprecation")
public static Notification build(final Builder builder) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
return builder.build();
} else {
return builder.getNotification();
}
}
或者你可以使用
您必须自己在源代码中定位支持库;仅仅将其添加到项目中是不够的。该系统不只是使用ITOK,我更改了代码以使用NoTimeCuiltCub.Builder,它似乎起作用。“像JujujuSU,请考虑接受一个答复。请看我的评论我做了什么修复它。尝试测试您的解决方案,我得到一个编译错误在<代码> @ SuffilLink(“NeWAPI”))。
说明资源路径位置类型注释类型的属性值未定义