2017-01-23 3 views
0

In meiner App verwende ich Android 6 spezifische Voranfrage für den Kamerazugriff. Es funktionierte gut, bis meine Festplatte starb und ich Eclipse/Android zurücksetzen musste.Android kann ActivityCompat-Methoden nicht finden, obwohl es installiert ist

Jetzt bekomme ich diese Fehler

The method requestPermissions(MainActivity, String[], int) is undefined for the type ActivityCompat 
The method checkSelfPermission(MainActivity, String) is undefined for the type ContextCompat 
The method shouldShowRequestPermissionRationale(MainActivity, String) is undefined for the type ActivityCompat 

Wenn ich versuche, selbst zu kompilieren, obwohl ActivityCompat erkannt wird. Ich habe das Android Support Repository vom SDK-Manager heruntergeladen und hatte immer noch die android-support-v4.jar in meinen Abhängigkeiten von Svn, aber es scheint nicht zu funktionieren.

Alle Lösungen, die ich bisher Punkt gefunden habe, die Bibliothek als Bibliotheksprojekt von den sdk Quellen aufzunehmen und dann die JAR-Datei in den Abhängigkeiten zu verwenden, aber der Ordner existiert nicht in meiner sdk Ordnerstruktur

<sdk>\extras\android\support 

ich habe den folgenden Ordner:

<sdk>\extras\android\m2repository\com\android\support 

Aber es enthält keine Bibliotheksprojekte in eclipse aufzunehmen.

Wie bekomme ich diese Quellen, so kann ich die Support-Bibliothek in Eclipse importieren und von meinem Projekt beziehen?

EDIT:

Hier ist der Code, der die Fehler verursacht:

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

    if (ActivityCompat.shouldShowRequestPermissionRationale(GalleryActivity.this, Manifest.permission.CAMERA)) { 
     ActivityCompat.requestPermissions(GalleryActivity.this, new String[]{Manifest.permission.CAMERA}, MainActivity.REQUEST_ALLOW_ACCESS_CAMERA_IMPORT); 
    } else { 
     ActivityCompat.requestPermissions(GalleryActivity.this, new String[]{Manifest.permission.CAMERA}, MainActivity.REQUEST_ALLOW_ACCESS_CAMERA_IMPORT); 
    } 

} else { 
    onTakeNewPhoto(); 
} 

Die sdk Ebenen deefined werden wie im Manifest folgt:

<uses-sdk 
    android:minSdkVersion="14" 
    android:targetSdkVersion="23" /> 

Meine project.properties Datei

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 
target=android-23 
android.library.reference.1=Licensing 
+0

post den Activity-Code sowie build.gradle (App-Ebene) – OBX

+0

bearbeitet meinen Beitrag, um den Code zu enthalten. ziemlich normaler Standardcode, der früher funktioniert hat. es gibt keine build.crade-Datei seit der Verwendung von eclipse – erinys

+0

können Sie Ihre project.properties im Eclipse-Projekt veröffentlichen? – faruk

Antwort

0

Sie sollten Android SDK-Tools aktualisieren und Android-Plattform-Tools und Android Sdk Integrierte Tools auf die neueste Version

Und dann versuchen Sie zuerst vorhandene Android-Projekt in Ihren Arbeitsbereich zu importieren, der Pfad:

<sdk>/extras/android/support/v7/appcompat 

Und dann legen Sie das oben genannte Projekt als Bibliotheksprojekt fest. Schließlich fügen Sie dieses Projekt als Referenz auf Ihr Hauptprojekt

+0

Das ist das Problem, dieser Ordner existiert nicht in meinem SDK, obwohl ive das Android Support Repository vom SDK-Manager heruntergeladen – erinys

+0

Versuchen Sie, Android-Support-Bibliothek, nicht Repository herunterladen – faruk

+0

ich kann diese Option in meinem SDK-Manager finden. Wo soll es sein? Unter Extras gibt es nur Android Support Repository und Google Repository, die beide installiert und aktuell sind. – erinys

Verwandte Themen