Die Methode checkSelfPermission kann nicht aufgelöst werden

8

Ich versuche, meine App für Android 6 bereit zu machen und jetzt bin ich an dem Punkt fest, wo Sie Berechtigungen anfordern und überprüfen müssen.

Ich habe Folgendes aus der Dokumentation versucht:

int permissionCheck = ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.WRITE_CALENDAR);

Das Problem ist, dass Android Studio Cannot resolve method 'checkSelfPermission' sagt.

Ich habe bereits die appcompat- und support-lib hinzugefügt. ContextCompat ist AS bekannt, aber die Methode selbst ist nicht bekannt. Ich weiß nicht, was ich falsch mache - in einem anderen Projekt kann ich diese Methode schreiben und sie wird erkannt.

TargetAPI ist 23.

Kennt jemand eine Lösung?

    
Phil 12.12.2015, 09:17
quelle

6 Antworten

12

Oh mein Gott - was für ein dummer Fehler.

AS hat die supportlib als jar importiert und dieses jar war wie 2014. Ich habe gerade den jarimport durch die echte Abhängigkeit ersetzt und weiß, dass es funktioniert.

Danke für Ihre Hilfe Jungs!

    
Phil 12.12.2015, 09:26
quelle
12

Hier müssen Sie verschiedene Szenarien aufrufen,

Im Falle einer Aktivität:

%Vor%

Im Falle eines Fragments:

%Vor%

Im Falle einer Nutzungskategorie verwenden Sie den Kontext:

%Vor%

Kommentar unten für weitere Informationen

    
Manikanta 12.12.2015 09:22
quelle
3

Für Fragment verwenden Sie getActivity().checkSelfPermission

Für Activity verwenden Sie this..checkSelfPermission oder einfach checkSelfPermission

    
Ali Akram 08.09.2016 12:49
quelle
1
%Vor%

Ich habe das einfach oben auf meiner Seite benutzt und es funktioniert für mich ...

    
Fahad Jadun 08.02.2017 18:44
quelle
0

So albern wie es vielleicht ist, könnte es an der falschen Stelle sein. Ich hatte das gleiche Problem. Im fettgedruckten Teil habe ich den Code ursprünglich eingefügt. Der kursive Teil ist dort, wo er hätte hingehen sollen

%Vor%     
gavin 15.10.2017 03:13
quelle
0

Ich hatte das gleiche Problem. In meinem Fall habe ich eine Bibliothek hinzugefügt, die eine alte appcompat-Version verwendet, dann konnte der Compiler die richtige appcompat nicht finden.

Um das Problem zu beheben, habe ich die Option {transitive = false} hinzugefügt, während ich die Täterbibliothek importiere, und dadurch wurde das Problem behoben.

Jetzt habe ich:

api ('org.library.using.old.appcompat:1.0.1') {transitive = false}

    
P1x 27.03.2018 11:05
quelle