Android 使用checkSelfPermission方法时引发运行时异常(java.lang.NoSuchMethodError)

Android 使用checkSelfPermission方法时引发运行时异常(java.lang.NoSuchMethodError),android,android-6.0-marshmallow,runtimeexception,runtime-permissions,Android,Android 6.0 Marshmallow,Runtimeexception,Runtime Permissions,使用方法checkSelfPermission时引发以下异常。对于应用程序,targetSDKVersion为21 致命异常:主进程:app.rvadm.RecoverAllMyDeletedFile,PID: 3700 java.lang.NoSuchMethodError:无静态方法 中的checkSelfPermission(Landroid/content/Context;Ljava/lang/String;)I 类Landroid/support/v4/content/ContextC

使用方法
checkSelfPermission
时引发以下异常。对于应用程序,targetSDKVersion为21

致命异常:主进程:app.rvadm.RecoverAllMyDeletedFile,PID: 3700 java.lang.NoSuchMethodError:无静态方法 中的checkSelfPermission(Landroid/content/Context;Ljava/lang/String;)I 类Landroid/support/v4/content/ContextCompat;或者它的超类 (“android.support.v4.content.ContextCompat”的声明出现在 /data/app/app.rvadm.RecoverAllMyDeletedFile-1/base.apk)

有人知道这件事吗?已为同一仿真器设备中的另一个应用程序正确调用该方法。 除此之外,我可以知道phone/emulator是如何选择支持库方法的吗

代码如下

     if (ContextCompat.checkSelfPermission(this,
                        Manifest.permission.READ_CONTACTS)
                != PackageManager.PERMISSION_GRANTED) {

                ActivityCompat.requestPermissions(this,
                        new String[]{Manifest.permission.READ_CONTACTS},
                        MY_PERMISSIONS_REQUEST_READ_CONTACTS);
                return;


        }

您可能需要将
compileSdkVersion
升级到23。这是因为自API 23以来添加了运行时权限功能。

请发布您的代码。问题已解决???。这就是cool@ankitpatidar没有。。我没有那么幸运:(.我的意思是,代码已经更新。说清楚了,手机是否通过查看
compileSdkVersion
来选择支持库版本?我注意到编译后不考虑
compileSdkVersion
。我不太确定这一点。
compileSdkVersion
tar>之间的差异有多种选择getSdkVersion
-这听起来仍然让我很困惑。我的经验是,我总是将
compileSdkVersion
设置为等于
targetSdkVersion
,尽管允许它们不同。