简单地从android:targetSdkVersion="22"切换到"23"会导致我的应用程序在Galaxy S6上崩溃。是什么引起的?退回去一切都很好。
我没有S6,所以我不能复制-我确信这是简单的事情.
发布于 2016-07-02 01:45:29
最有可能的原因是您的应用程序所需的权限,在您的报表中指定。
“从Android6.0 (API 23)开始,用户在应用程序运行时,而不是在安装应用程序时,授予应用程序权限。”参见在运行时请求权限。
特别是,如果应用程序需要危险权限和权限组表中列出的任何权限,则需要实现代码,以便在运行时对运行23或更高版本的设备请求这些权限。如果您不这样做,并且尝试执行一个需要这些权限之一的任务,该应用程序将崩溃。
但是,如果需要,系统会自动授予正常(非危险)权限,并且不需要在运行时单独请求。
如果要避免此问题,只需将目标SDK保留为22即可。如果您特别需要SDK 23的其他特性,那么您将需要完成上面第一个链接中指出的步骤,以便在运行时对运行23或更高版本的设备请求权限。
棉花糖(23)已经在许多地区推出了银河S6。如果你能发现正在经历崩溃的安卓版本的Galaxy S6正在运行,我打赌你会发现它是Marshmallow的。
https://stackoverflow.com/questions/38154813
复制相似问题