Toast.makeText未在Android11中显示(使用SDK30模拟器)
根据https://developer.android.com/about/versions/11/behavior-changes-11#toasts,Toasts 应该仍然可以正常用于 Android11(仅 setView() 已弃用)。
请注意,仍然允许文本吐司;这些是使用不调用 setView() 的 Toast.makeText() 创建的吐司。
但是,我无法为运行 SDK30 的模拟器显示 Toast
compileSdkVersion 30
buildToolsVersion "30.0.3"
and with targetSdkVersion 30
使用的代码只是一个简单的
Toast.makeText(getApplicationContext(), "HELLO WORLD", Toast.LENGTH_SHORT).show();
当我将 targetSdk 更改为 29(或设备 <SDK30)时,会显示吐司。
我是否需要在清单文件中为 Toast 添加任何 <queries> 标签?
https://developer.android.com/about/versions/11/privacy/package-visibility
我也试过以下没有运气。
- 重新启动模拟器Toast 未在 Android Q 中显示
- 通知 ON Toast 消息未显示
回答
第一种方法
更新Android Emulator到30.4.5版本修复了我的错误。PS我也更新Android SDK Platform-Tools到31.0.0版本(这也可能有帮助)。
菜单Tools-> SDK Manager-> SDK Tools,设置复选框Android Emulator为V-mode,按 按钮Apply,按 按钮OK,确认。
PS 同样在更新这些 Android Studio 和模拟器后关闭并在新编译之前清理项目。
第二种方法
如果您在使用最新版本的 Android Emulator 时遇到此错误,还有另一种解决方案。你可以试试模拟器的冷启动。菜单Tools-> AVD Manager。找到您的模拟器名称,单击按钮 ? 在它的右侧,选择Cold boot now按钮。
THE END
二维码