2015-10-07 63 views
20

我想使運行時權限向下兼容舊設備兼容,但使用的支持庫,我不能在ContextCompat類找到checkSelfPermission()靜態調用,但其記錄here機器人ContextCompat.checkSelfPermission()未找到

這裏是我的項目gradle這個設置:

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

和這裏的依存關係:

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

任何想法我失蹤?

回答

35

checkSelfPermission()直到API 23才被引入本機Context。因此,您至少需要使用支持庫的版本23.0.0。

你應該改變這種

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

這個

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

+0

我試過這個東西,但編譯錯誤爲minSdkVersion 16!如何解決這個問題? – Ashok

+0

你可以發佈你得到的錯誤嗎? – phxhawke

+0

請小心當你的minSdkVersion <23這種行爲https://stackoverflow.com/questions/33407250/checkselfpermission-method-is-not-working-in-targetsdkversion-22 – bvk256

4

如果您已經從Eclipse中添加以下行遷移不會工作

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

在遷移,一世t將appcompatv4添加爲外部相關庫。 確保你已經從libs文件夾中刪除了appcompatv4庫,然後它應該開始工作