Es wurde keine Ressource gefunden, die dem angegebenen Namen entspricht: attr 'android: keyboardNavigationCluster'. beim Update auf Support Library 26.0.0

215

Ich habe dieses Problem beim Aktualisieren auf die neueste Support Library Version 26.0.0 ( https://developer.android.com/topic/libraries/support-library/revisions.html#26-0-0 ):

Fehler: (18, 21) Es wurde keine Ressource gefunden, die dem angegebenen Namen entspricht: attr 'android: keyboardNavigationCluster'.

/.../app/build/intermediates/res/merged/beta/debug/values-v26/values-v26.xml
Error:(15, 21) No resource found that matches the given name: attr 'android:keyboardNavigationCluster'.
Error:(18, 21) No resource found that matches the given name: attr 'android:keyboardNavigationCluster'.
Error:(15, 21) No resource found that matches the given name: attr 'android:keyboardNavigationCluster'.
Error:(18, 21) No resource found that matches the given name: attr 'android:keyboardNavigationCluster'.
Error:Execution failed for task ':app:processBetaDebugResources'.

com.android.ide.common.process.ProcessException: Fehler beim Ausführen von aapt

Die Datei stammt aus der Support-Bibliothek:

<style name="Base.V26.Widget.AppCompat.Toolbar" parent="Base.V7.Widget.AppCompat.Toolbar">
    <item name="android:touchscreenBlocksFocus">true</item>
    <item name="android:keyboardNavigationCluster">true</item>
</style>

Wir verwenden die folgenden Versionen:

ext.COMPILE_SDK_VERSION = 26
ext.BUILD_TOOLS_VERSION = "26.0.1"

ext.MIN_SDK_VERSION = 17
ext.TARGET_SDK_VERSION = 26
ext.ANDROID_SUPPORT_LIBRARY_VERSION = "26.0.0"
ext.GOOGLE_PLAY_SERVICES_LIBRARY_VERSION = "11.0.2"

compile 'com.android.support:appcompat-v7:' + ANDROID_SUPPORT_LIBRARY_VERSION
compile 'com.android.support:design:' + ANDROID_SUPPORT_LIBRARY_VERSION
compile 'com.android.support:recyclerview-v7:' + ANDROID_SUPPORT_LIBRARY_VERSION

Irgendwelche Ideen?

Alécio Carvalho
quelle
5
Es bleibt ein Problem mit der neuesten Version (26.0.1): developer.android.com/topic/libraries/support-library/…
Alécio Carvalho

Antworten:

314

Ich konnte es beheben, indem ich die SDK-Version und die Tools in Gradle aktualisierte compileSdkVersion 26 buildToolsVersion "26.0.1"

und support library 26.0.1 https://developer.android.com/topic/libraries/support-library/revisions.html#26-0-1

XH6-Benutzer
quelle
4
Das hat bei mir nicht funktioniert. Ich musste die Google Play-Dienste auf 11.2 aktualisieren, und dann kam der obige Fehler, und Ihre Antwort half nicht. Ich habe auch alle Support-Inhalte auf 26.0.1 aktualisiert, aber immer noch kein Glück. Hast du noch andere Ideen?
Nandor Poka
Die Aktualisierung auf 26 hat jedoch auch erhebliche Auswirkungen auf viele andere Dinge. Einschließlich Benachrichtigungen, die erst funktionieren, wenn die richtigen Kanäle für Android 8.0 erstellt wurden, oder?
Patric
5
@patric Das Kompilierungs-SDK zielt nicht auf das SDK ab.
XH6 Benutzer
Wenn diese Lösung bei Ihnen nicht funktioniert, lesen Sie die Antwort von Sam unten.
Benny
2
Was ist, wenn ich die compileSdkVersion aufgrund einer Geschäftsanforderung nicht von 25 aktualisieren möchte? Wie kann man das loswerden?
binaryKarmic
53

Ändern Sie die Compile SDK-Version:

compileSdkVersion 26

Build Tool Version:

buildToolsVersion "26.0.1"

Ziel-SDK-Version:

targetSdkVersion 26

Abhängigkeiten:

compile 'com.android.support:appcompat-v7:26+'
compile 'com.android.support:design:26+'
compile 'com.android.support:recyclerview-v7:26+'
compile 'com.android.support:cardview-v7:26+'

Gradle synchronisieren.

Amar Gore
quelle
2
Warnung erhalten: Vermeiden Sie die Verwendung von + in der Versionsnummer.
Qadir Hussain
2
das hat bei mir funktioniert. + von allen entfernt, um Warnungen loszuwerden
Qadir Hussain
2
Verwenden Sie nicht +, Sie möchten reproduzierbare Builds erhalten und haben die volle Kontrolle über Ihre Abhängigkeiten. Sie möchten nicht, dass Ihre App nach einem neuen Build
abhört
1
Sie müssen das nicht aktualisieren, targetSdkVersiondamit dies funktioniert. Das Setzen auf 26 hat andere Auswirkungen - dh Sie müssen Ihre App für Android 8.0 kompatibel machen.
Ataulm
In welcher Datei ich diese Dinge hinzufügen muss, können Sie @ataulm
Ravi Mehta
35

Ich musste ändern compileSdkVersion = 26und buildToolsVersion = '26.0.1'in alle meine Abhängigkeiten build.gradleDateien

Erik Duisters
quelle
2
Sie sollten eine Konstante in gradle.properties für alle Ihre Versionsnummern verwenden und diese in Ihren build.gradle-Dateien verwenden: api "com.android.support:appcompat-v7:$ANDROID_COMPATIBILITY_VERSION"
Snicolas
13

In meinem reaktionsnativen Projekt wird dieser Fehler in der generiert react-native-fbsdk. Das react-native-fbsdk/android/build.gradlefolgende Update behebt das Problem.

compileSdkVersion 26
buildToolsVersion "26.0.1"
Peteroid
quelle
7
Das Hinzufügen unten zu root build.gradle funktionierte nicht erforderlich, um die build.gradle-Datei des Moduls zu bearbeitensubprojects { afterEvaluate {project -> if (project.hasProperty("android")) { android { compileSdkVersion 26 buildToolsVersion '26.0.1' } } } }
Yalamber
9

Ich habe genau den gleichen Fehler festgestellt und habe überall gegoogelt, um herauszufinden, was ich falsch mache, da der Code für Build-Werte-26 und nicht die von mir bereitgestellten Stile generiert wird. Ich habe alles versucht, von Gradle 4.0 über Android Studio Preview 3.0 bis hin zu Canary Channel.

Ich habe die Antwort online nie gefunden. Am Ende konnte ich zu Standard Dev Android Studio und 2.3.3 Gradle zurückkehren, da ich es versehentlich repariert habe :).

Es stellte sich heraus, dass ich mich so auf die Aktualisierung meines Bibliotheksprojekts konzentrierte, dass ich nicht bemerkte, dass der Fehler durch ein nicht verwendetes Submodul (Demo-App) verursacht wurde, das in meinem Bibliotheksprojekt verschachtelt ist. Nachdem ich das Submodul aktualisiert hatte, um es an die 26 Build-Tools und 26+ Design- und Support-Bibliotheken anzupassen, war mein Problem behoben.

Ich bin mir nicht sicher, ob das auch das ist, was Sie sehen, aber ich persönlich habe nur die Bibliothek aktualisiert, um sie erneut zu veröffentlichen, also habe ich mich nicht um das Beispiel-App-Modul gekümmert, und der Fehler schien sicher mit 26 SDK zu zusammenhängen, die ich nur angesprochen habe Das lib-Modul dachte also nicht daran, das andere zu überprüfen. Das war die ganze Zeit das Problem für mich. Hoffentlich behebt dich das auch. Ich hatte diesen Fehler in 2 Bibliotheksprojekten und er wurde in beiden behoben.

Auf jeden Fall viel Glück und wenn dies Ihr Problem nicht löst, teilen Sie uns bitte mit, was passiert ist. BTW 26.0.01 Build Tools und 26.1.0 Design und Support waren am Ende meine Ziele, obwohl 26.0.1 auch gut funktioniert hat.

Sam
quelle
Es löst wirklich das Problem (wenn Sie mehrere Module haben)
D. Sergeev
8

Ich hatte genau diesen Fehler und mir wurde klar, dass mein compileSdkVersionauf eingestellt war 25und mein buildToolsVersionauf eingestellt war "26.0.1".

Also habe ich nur das compileSdkVersionzu 26und die Gradle synchronisiert. es hat das Problem für mich behoben.

EDIT: mein targetSDKVersionwurde auch als gesetzt26

Junaid Aziz
quelle
8

Ich hatte einen ähnlichen Fehler bei "React-Native-Youtube" und "React-Native-Orientierung".

Es wurde herausgefunden, dass das build.gradle dieses Projekts compileSdkVersion 23nur das Feature: android: keyboardNavigationCluster verwendet api 26(Android 8).

Wie kann man das beheben?

Eine Möglichkeit, dies einfach zu beheben, besteht darin, Ihr /android/build.gradle (!!! NICHT /android/app/build.gradle) zu bearbeiten und diesen Code am Ende der Datei hinzuzufügen.

Auf diese Weise können Sie das SDK und die BuildTool-Version erzwingen, die Ihre Submodule verwenden:

subprojects {
    afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion 27
                buildToolsVersion "27.0.2"
            }
        }
    }
}
suther
quelle
7

Ich war auch mit diesem Problem konfrontiert. Sie müssen nur zwei Änderungen vornehmen:

Dateiname: android / build.gradle Erwähnen Sie diesen folgenden Code

subprojects {
   afterEvaluate { 
     project -> if (project.hasProperty("android")) { 
       android { 
        compileSdkVersion 26 buildToolsVersion '26.0.2' 
       } 
      }
    } 
}

Dateiname: android / app / build.gradle Ändern Sie Ihre compliesdk-Version und buildToolVersion wie folgt:

compileSdkVersion 26 buildToolsVersion "26.0.2"

und in

dependencies {
    compile 'com.android.support:appcompat-v7:26.0.2'
}
Revansiddh
quelle
7

Ich hatte das gleiche Problem mit meinem Ionic 2-Projekt. Alles, was ich getan habe, um die Probleme zu lösen, war

  • Öffnen Sie "ionic_project_folder / platform / android / project.properties".
  • Ändern Sie target = android-25 in target = android-26
  • Lauf ionic build --release android

Hoffe das hilft jemandem!

Aweda
quelle
Mein Projekt ändert sich zu target=android-26, zeigt aber immer noch diesen Fehler
Yuyang He
6
//Adding this to the root build.gradle solved my problem, thanks @Yalamber
subprojects {
        afterEvaluate { project ->
            if (project.hasProperty("android")) {
                android {
                    compileSdkVersion 26
                    buildToolsVersion '26.0.2'
                }
            }
        }
    }
Pablo Rendón
quelle
Können Sie mehr Informationen mit Code teilen, um Ihre Antwort besser zu verstehen?
Prags
Normalerweise ist es besser, eine Lösung zu erklären, als nur einige Zeilen anonymen Codes zu veröffentlichen. Sie können lesen, wie ich eine gute Antwort schreibe und auch vollständig codebasierte Antworten
erkläre
1
Danke dir! Beste Antwort. Im Wesentlichen hatten die Projektabhängigkeiten (node_modules-Projekte) unterschiedliche SDK-Versionen. Durch Hinzufügen dieses Codes zum Build.gradle auf Stammebene wird sichergestellt, dass alle diese Abhängigkeiten die angegebene SDK-Version verwenden und das Projekt erstellt werden kann. : D
Nigh7Sh4de
4

Wenn nach dem Aktualisieren Ihres Android Studios auf 3.0 dieser Fehler auftritt, aktualisieren Sie einfach die Gradle-Eigenschaften. Dies sind die Einstellungen, die mein Problem gelöst haben:

compileSdkVersion 26

targetSdkVersion 26

buildToolsVersion '26.0.2'
Ajayacharya
quelle
26.0.2Build-Version behoben Dinge für mich.
Karl Taylor
3

Ich habe mein Projekt aktualisiert, um app/build.gradlezu haben

compileSDkVersion 26
buildToolsVersion '26.0.1'

Das Problem war jedoch tatsächlich mit dem react-native-fbsdkPaket. Ich musste die gleichen Einstellungen in ändern node_modules/react-native-fbsdk/android/build.gradle.

Karl Taylor
quelle
3


Klicken Sie im Android Studio mit der rechten Maustaste auf das Projekt (da ich ein Cordova-Projekt hatte, hatte ich CordovaLib und Android: Ich habe in meinem Fall Android ausgewählt).

  1. Wählen Sie Open Module Settings
  2. Wählen Sie im angezeigten Modal "Projektstruktur" das Projekt im Abschnitt "Module" im Seitenbereich aus (in meinem Fall wieder "Android").
  3. Klicken Sie auf die Registerkarte Abhängigkeiten
  4. Klicken Sie oben rechts auf das grüne Pluszeichen
  5. Wählen Sie Bibliotheksabhängigkeit
  6. Wählen Sie App-kompatibel-v7 aus der Dropdown-Liste
  7. Projekt reinigen und neu aufbauen
Jac
quelle
Dies ist eine viel einfachere Möglichkeit, dies zu beheben, als alle Dateien manuell zu bearbeiten.
Robert Liberatore
2

Ich habe das kürzlich getroffen und erinnere mich, woher es kommt. Es ist eine Nichtübereinstimmung zwischen der Version Xamarin.Android. * Und der installierten Android SDK-Version.

Die aktuellen VS2017 15.5.3neue Projektvorgaben für NuGet Xamarin.Android.*sind 25.4.0.2und die Standard - VS installieren für Cross - Plattform - Entwicklung die folgenden Android SDK - Pakete sind:

  • Android 7.1- Nougat
    • Android SDK-Plattform 25
    • Google APIs Intel x86 Atom System Image

Wenn Sie Ihre Lösung nuGet für Xamarin.Android.*auf aktualisiert haben, müssen Sie Folgendes 26.1.0.1im Android SDK installieren:

  • Android 8.0- Oreo
    • Android SDK-Plattform 26
    • Google APIs Intel x86 Atom System Image
dskow
quelle
2

Ich hatte das gleiche Problem bei einem meiner PhoneGap-Projekte (Android Studio 3.0.1). Um dies zu beheben, habe ich den folgenden Schritt befolgt

1) Klicken Sie mit der rechten Maustaste auf den Projektnamen (in meinem Fall Android) und wählen Sie "Moduleinstellungen öffnen".

2) Wählen Sie Module (Android und CordovaLib)

3) Klicken Sie oben auf Eigenschaften

4) Wählen Sie die Compile SDK-Version (ich habe API 26: Android 8.0 gewählt).

5) Wählen Sie Build Tools Version (ich habe 26.0.2 gewählt)

6) Quellenkompatibilität (1.6)

7) Zielkompatibilität (1.6)

Klicken Sie auf OK und erstellen Sie das Projekt neu.

Der folgende Link zeigt meine Einstellung für den Schritt, dem ich gefolgt bin

https://app.box.com/s/o11xc8dy0c2c7elsaoppa0kwe1d94ogh https://app.box.com/s/ofdcg0a8n0zalumvpyju58he402ag1th

Chirag Purohit
quelle
2

Wenn Sie versuchen, targetSDKVersion 26 auf 25 zu ändern, wurde zu diesem Zeitpunkt eine Lösung gefunden. Es wurde keine Ressource gefunden, die dem angegebenen Namen entspricht: attr 'android: keyboardNavigationCluster'. beim Update auf Support Library 26.0.0

Chage diesen Code einfach aus deinem Build.gradle

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '26.0.1'
            }
        }
    }
}

zu

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '25.2.0'
            }
        }
    }
}
Sanjay Hadiya
quelle
2

Ich habe dieses Problem beim Kompilieren von react-native-fbsdk

Ich habe dieses Problem durch Änderung build.gradlevon gelöstreact-native-fbsdk

von

compile('com.facebook.android:facebook-android-sdk:4.+')

zu

compile('com.facebook.android:facebook-android-sdk:4.28.0')
Tuan Nguyen
quelle
1

Dieses Problem wurde von einer der Bibliotheken verursacht, die für die Kompilierung Version 26 benötigten.

Wenn Sie die targetSdkVersion auf 26 setzen, treten andere Probleme auf, und Sie müssen Ihre App optimieren, um sie an die Oreo-Plattform anzupassen. Dies ist nicht für alle die richtige Lösung.

Ich mache nur das compileSdkVersion to 26und buildToolsVersion to 26.0.2arbeite für mich.

Man sollte auch alle Support-Bibliotheken aktualisieren , um 26.1.0 oder höher zu verwenden.

Mohammed Ibrahim
quelle
1

Aktualisieren Sie diese in Gradle

compileSdkVersion 27 buildToolsVersion '27 .0.1 '

Artist404
quelle
1

Ich habe dieses Problem behoben, indem ich einige Änderungen an der Datei build.gradle vorgenommen habe

Die Änderungen in root build.gradle lauten wie folgt:

subprojects {
   afterEvaluate { 
     project -> if (project.hasProperty("android")) { 
       android { 
        compileSdkVersion 26 
        buildToolsVersion '26.0.1' 
       } 
      }
    } 
}

Die Änderungen in build.gradle lauten wie folgt:

compileSdkVersion 26 
buildToolsVersion "26.0.1"

und

dependencies {
    compile 'com.android.support:appcompat-v7:26.0.1'
}
Palak Jain
quelle
1

Für alle, die Nativescript verwenden und mit diesem Problem konfrontiert sind: Sie können hinzufügen

compileSdkVersion 26
buildToolsVersion '26.0.1'

in App_Resources / Android / app.gradle (unter android {)

Führen Sie dann tns platform remove androidund tns build androidin Ihrem Projektstamm aus.

palia5
quelle
0

Stellen Sie sicher, dass Ihre Entwicklungsumgebung Android SDK 8.0 enthält. Ich hatte das gleiche Problem auf meinem MAC und die Installation von SDK 8.0 und seinen Tools hat es behoben. Ich habe das gleiche Problem unter Windows. Ich lade jetzt das SDK herunter.

Ph0b0x
quelle
0

Ich hatte das gleiche Problem mit ionic.

cordova platform remove android
cordova platform add android@6.4.0

Und ersetzen Sie in platform / android / projet.properties

cordova.system.library.1=com.android.support:support-v4+

Zu

cordova.system.library.1=com.android.support:support-v4:26+
Amr.Ayoub
quelle
0

Dazu müssen Sie Folgendes tun: 1. Klicken Sie mit der rechten Maustaste auf das Projekt.

2. Öffnen Sie die Moduleinstellungen-> auf der Registerkarte Eigenschaften-> Ändern Sie die Kompilierungs-SDK- und Build-Tool-Version in 26.26.0.0.

3.Klicken Sie auf OK.

Es funktioniert für mich nach einer Stunde versucht.

S HemaNandhini
quelle
0

Ich habe dieses Problem folgendermaßen gelöst:

compileSdkVersion 26
buildToolsVersion "26.0.1"

compile 'com.android.support:appcompat-v7:26.0.1'
compile 'com.android.support:design:26.0.1'
compile 'com.android.support:cardview-v7:26.0.1'
compile 'com.android.support:recyclerview-v7:26.0.1'
Aldemir Gomes
quelle
Bitte verwenden Sie auf dieser Website nur Englisch . Wenn Sie lieber Portugiesisch verwenden, gibt es Stack Overflow em Português .
Tom Zych
-1

Löschen Sie einfach Ihr Projekt und erstellen Sie es erneut.

./gradlew  app:clean app:assembleDebug

Es funktioniert jedoch nicht, wenn targetSdkVersion oder compileSdkVersion 25 ist.

Esdras
quelle