今天项目刚好要用到 Notification 。刚开始我是这样写的:
Notification notification2 = new Notification(R.mipmap.icon_demo, "通知测试", System.currentTimeMillis());
notification2.setLatestEventInfo(getActivity(),"testTitle","testContent",null);
结果androidstudio报错,setLatestEventInfo该方法找不到,实际上该方法存在于源码中
因为我用的是最新的SDK 23,对比SDK 22的源码如下
比较两个版本的源码我们可以发现Notification.java在SDK23中比SDK 22中多了一行注释 “@removed”,这意味着如果你的工程是用SDK 23的那么此方法用不了,如果想用的话将编译版本换成 SDK 22即可。
那么在AS中如何装换SDK呢?
如何改了,依照惯例,我直接上图吧:
File-->Project structure,打开如下界面,这个是改整个工程的SDK版本:
这里是针对不同的module进行更改。
好了,选择你要的sdk的版本,apply,然后再ok,大功告成。
可是也有例外,类似于如下错误:
当你的androidAPI 由2.1版本更换成2.2版本时:
error: Error retrieving parent for item: No resource found that matches the given name 'android:WindowTitle'.
从而导致我们的程序无法编译通过。
原因:
android2.1中的某些API(包括类方法或者XML属性)更换成android2.2时,它们的路径已经发生了改变,从而导致编译器无法找到它们,所以编译无法通过。
1. 在Eclipse中打开任意一个.java文件,输入
2. 回到报错的res/values/styles.xml,
将<style name="XWindowTitle" parent="">
关于Styles and Themes 之间的关系,请参考官方网站