只需从android:targetSdkVersion="22"
更改为"23"
,我的应用就会在Galaxy S6
上崩溃。会导致什么?回滚,一切都很好。
我没有S6所以我无法复制 - 我确信它很简单...
答案 0 :(得分:3)
最可能的原因是您的应用所需的权限,在您的清单中指定。
&#34;从Android 6.0(API级别23)开始,用户在应用运行时向应用授予权限,而不是在安装应用时授予权限。&#34; < /强> 见Requesting Permissions at Run Time
特别是如果您的应用需要Dangerous permissions and permission groups表中列出的任何权限,则需要在运行23或更高版本的设备上实现代码以在运行时请求这些权限。如果您没有,并且您尝试执行需要其中一项权限的任务,则该应用程序将崩溃 但是,如果需要,系统会自动授予正常(非危险)权限,并且不需要在运行时单独请求。
如果您想避免此问题,请将目标SDK保留为22。 如果您特别需要SDK 23的其他功能,则需要执行上面第一个链接中指示的步骤,以便在运行时在23或更高版本的设备上请求权限。
Marshmallow(23)现已在许多地区推出Galaxy S6。如果你能找到正在经历崩溃的Galaxy S6正在运行的Android版本,我打赌你会发现它的棉花糖。