android:targetSdkVersion="23" 导致 Galaxy S6 崩溃

android:targetSdkVersion="23" Crashes so Galaxy S6

简单地从 android:targetSdkVersion="22" 更改为 "23" 会导致我的应用程序在 Galaxy S6 上崩溃。什么会导致那?回滚,一切都很好。

我没有 S6,所以无法复制 - 我敢肯定这很简单...

最可能的原因是您的应用所需的权限,在您的清单中指定。

"Beginning in Android 6.0 (API level 23), users grant permissions to apps while the app is running, not when they install the app." 参见 Requesting Permissions at Run Time

特别是如果您的应用需要 Dangerous permissions and permission groups table 中列出的任何权限,您将需要实施代码以在 运行 时间在设备上请求这些权限 运行ning 23 或更高。如果您不这样做,并且您尝试执行需要这些权限之一的任务,应用程序将会崩溃。
但是,正常(非危险)权限会在需要时由系统自动授予,不需要在 运行 时间单独请求。

如果您想避免此问题,只需将您的目标 SDK 保留为 22。 如果您特别需要 SDK 23 的其他功能,那么您将需要完成上面第一个 link 中指示的步骤,以便在 运行 时间在设备 运行 上请求权限宁23或更高。

棉花糖 (23) 现已在多个地区推出适用于 Galaxy S6 的版本。如果您能找出遇到崩溃的 Galaxy S6 的 Android 版本是 运行ning,我敢打赌您会发现它是 Marshmallow。