我的项目minSdkVersion设置为10。
MainActivity是来自 support.v7.app.AppCompatActivity 的ActionBarActivity。
Android 2.3.7(api10)上的默认方法.invalidateOptionsMenu()
崩溃,所以我必须使用兼容性方法.supportInvalidateOptionsMenu()
;
我有一个问题:
为什么Android Studio没有提醒我invalidateOptionsMenu
不适用于较旧的api?
只有在我成功构建了一个apk并在api10设备上运行它并且它崩溃之后我才理解这一点......
如何在没有任何实际测试的情况下进行检查?
与PopupMenu相同的事情
如果我错误地导入android.widget.PopupMenu
而不是android.support.v7.widget.PopupMenu
我没有收到来自AndroidStudio的警告,minSdk设置为10而PopupMenu将无法在旧Android上使用
答案 0 :(得分:2)
supporting different platform versions的Google文档提供了一些很好的见解。他们甚至解决了您正在处理的问题:
private void setUpActionBar() {
// Make sure we're running on Honeycomb or higher to use ActionBar APIs
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
}
}
除此之外,我最好的建议是将目标API设置为您要测试的平台,看看它是否为您提供了任何编译器级别标志,如果没有在模拟器中快速运行它。希望有所帮助!