android ContextCompat.checkSelfPermission() not fo

2019-01-23 02:50发布

问题:

I am trying to make runtime permissions backward compatible with older devices but using the support library i cant find checkSelfPermission() static call in ContextCompat class, but its documented here

Here is my project gradle settings:

defaultConfig {
    applicationId "org.myprogram.cool"
    minSdkVersion 16
    targetSdkVersion 23
    versionCode 39
    versionName "3.0"
}

and here is the dependencies:

compile 'com.google.android.gms:play-services:+'
compile 'com.squareup:otto:1.3.5'
compile 'com.android.support:appcompat-v7:22.1.1'

any idea what i am missing ?

回答1:

checkSelfPermission() didn't get introduced into the native Context until API 23. So you will need to use at least version 23.0.0 of the support library.

You should change this

compile 'com.android.support:appcompat-v7:22.1.1'

to this

compile 'com.android.support:appcompat-v7:23.0.1'



回答2:

If you have migrated from eclipse adding the below line wont work

compile 'com.android.support:appcompat-v7:23.0.1'

While migrating, it adds appcompatv4 as an external dependent library. Make sure you have deleted the appcompatv4 library from the libs folder and then it should start working