Null-Zeiger-Ausnahme aus, wenn die Prüfung für die Erlaubnis mit android.Inhalt.Kontext.checkPermission
Ich brauche, um zu überprüfen, für die Berechtigungen vor dem Abfragen der Android-Kalender für Veranstaltungen.
Es zu tun, Android studio ist die Warnung, dass ich Folgen müssen ein check vor dem Abfragen.
Der automatisch generierte code ist dieses Stück:
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_CALENDAR) != PackageManager.PERMISSION_GRANTED) {
System.out.println("NO ACCESS TO CALENDAR!! Abort mission, abort mission!!");
}
Beim Versuch es zu starten, bekomme ich diesen Fehler:
Versuch zum aufrufen der virtuellen Methode " int
android.Inhalt.Kontext.checkPermission java.lang.String, int, int)'
auf ein null-Objekt Verweis
So ist es klar, dass etwas null ist an dieser Stelle, und ich habe versucht, um den Kontext der app mit einem anderen Weg, aber es ist immer noch der gleiche Fehler.
Andere Sache, die ich versuchte, war dies code, der angeblich Griff die Ziele niedriger als Android 6:
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CALENDAR) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_CALENDAR},
MY_PERMISSIONS_REQUEST_READ_CONTACTS);
}
Immer noch die gleichen Fehler, kann jemand mir helfen mit diesem?
es ist eine separate Klasse, controller: public class DummyData erstreckt Aktivität { .... }
auch Sie sollten dies von AppCompatActivity Klasse bilden keine Aktivität
versucht, immer noch die gleiche Fehlermeldung
InformationsquelleAutor Async- | 2016-03-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist nicht zur Arbeit gehen.
Nie erweitern
Activity
es sei denn, es ist eine echte Aktivität, eine, die Sie registrieren, wird in der manifest.Nie erstellen Sie eine Instanz der
Activity
über einen Konstruktor (z.B. dienew DummyData()
dass du irgendwo in deinem code). VerwendenstartActivity()
eine Aktivität anzeigen, dass Sie sich registriert haben, in das manifest.So wie es da steht, während Ihr
DummyData
Klasse kann Arbeit aus einer Zusammenstellung Standpunkt, es wird nicht zur Laufzeit. EinActivity
muss instanziiert werden, indem der Rahmen, und das ist nicht der Fall mit IhremDummyData
.Pass ein real
Context
ObjektcheckSelfPermission()
, und übergeben Sie ein realActivity
ObjektrequestPermissions()
. In diesem Fall "real" bedeutet "übergeben, um Sie aus dem Rahmen".Wie bereits Pass ein echtes Context-Objekt zu checkSelfPermission(), und geben Sie eine reelle Objekt requestPermissions(). Wird die übergabe getContext() in Fragment funktionieren??? Oder muss ich das mit getActivity()?
Entweder sollte die Arbeit für die Zwecke der
checkSelfPermission()
.InformationsquelleAutor CommonsWare
Nutzung (Aktivität)mContext statt.
InformationsquelleAutor Ramesh R
Schreiben Sie die richtige Aktivität an der position, "das"
Hauptproblem in der Aktivität.
Versuchen zu schreiben, die code in der MainActivity und testen.
InformationsquelleAutor Muhammad Kashif Arif