Nessuna risorsa trovata che corrisponde al nome dato: attr 'android: keyboardNavigationCluster'. durante l'aggiornamento a Support Library 26.0.0


215

Ho questo problema durante l'aggiornamento all'ultima versione della Support Library 26.0.0 ( https://developer.android.com/topic/libraries/support-library/revisions.html#26-0-0 ):

Errore: (18, 21) Nessuna risorsa trovata che corrisponde al nome dato: 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: Impossibile eseguire aapt

Il file proviene dalla libreria di supporto:

<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>

Stiamo usando le seguenti versioni:

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

Qualche idea?


5
rimane un problema con la versione più recente (26.0.1): developer.android.com/topic/libraries/support-library/…
Alécio Carvalho

Risposte:


314

Sono stato in grado di risolverlo aggiornando la versione sdk e gli strumenti in gradle compileSdkVersion 26 buildToolsVersion "26.0.1"

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


4
Questo non ha funzionato per me. Ho dovuto aggiornare i servizi di Google Play a 11.2 e poi è arrivato l'errore sopra riportato e la tua risposta non ha aiutato. Ho anche aggiornato tutto il materiale di supporto alla 26.0.1, ma non ho ancora avuto fortuna. Hai qualche altra idea?
Nandor Poka,

Ma l'aggiornamento a 26 avrà anche un impatto importante su molte altre cose. Incluse le notifiche che non funzionano fino a quando non vengono creati i canali appropriati per Android 8.0, giusto?
Patric,

5
@patric L'SDK di compilazione non è destinato all'SDK.
Utente XH6,

Se questa soluzione non funziona per te, controlla la risposta di Sam qui sotto.
Benny,

2
Cosa succede se non desidero aggiornare la compilazioneSdkVersion da 25 a causa di un requisito aziendale? Come sbarazzarsi di questo?
binaryKarmic il

53

Modifica compilazione versione SDK:

compileSdkVersion 26

Versione dello strumento di costruzione:

buildToolsVersion "26.0.1"

Versione SDK di destinazione:

targetSdkVersion 26

dipendenze:

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+'

Sync Gradle.


2
ottenere un avviso: evitare di usare + nel numero di versione.
Qadir Hussain,

2
questo ha funzionato per me. rimosso + da tutti per sbarazzarsi degli avvertimenti
Qadir Hussain,

2
non usare +, vuoi ottenere build riproducibili e avere il pieno controllo delle tue dipendenze. Non vuoi che la tua app inizi a rompersi dopo una nuova build perché ha aggiornato tranquillamente una lib ...
Snicolas,

1
Non è necessario aggiornare il targetSdkVersionper farlo funzionare. L'impostazione su 26 avrà altre implicazioni, vale a dire che devi rendere la tua app compatibile per Android 8.0.
ataulm,

in quale file devo aggiungere queste cose puoi guidare @ataulm
Ravi Mehta il

35

Ho dovuto cambiare compileSdkVersion = 26e buildToolsVersion = '26.0.1'in tutti i miei build.gradlefile di dipendenze


2
dovresti usare una costante in gradle.properties per tutti i tuoi numeri di versione e usarla nei tuoi file build.gradle: api "com.android.support:appcompat-v7:$ANDROID_COMPATIBILITY_VERSION"
Snicolas

13

Nel mio progetto di reazione nativa, questo errore viene generato nel file react-native-fbsdk. L'aggiornamento di react-native-fbsdk/android/build.gradlequanto segue risolve il problema.

compileSdkVersion 26
buildToolsVersion "26.0.1"

7
l'aggiunta di seguito a root build.gradle ha funzionato senza la necessità di modificare il file build.gradle del modulosubprojects { afterEvaluate {project -> if (project.hasProperty("android")) { android { compileSdkVersion 26 buildToolsVersion '26.0.1' } } } }
Yalamber

9

Ho riscontrato lo stesso identico errore e ho cercato su Google di trovare quello che sto facendo di sbagliato in quanto viene generato il codice di build-26 e non gli stili che ho fornito. Ho provato di tutto, dal Gradle 4.0 all'anteprima di Android Studio 3.0 al canale canarino, lo chiami.

Non ho mai trovato la risposta online. Alla fine, sono stato in grado di tornare allo standard Dev Android Studio e 2.3.3 Gradle mentre ho finito per risolverlo accidentalmente :).

Alla fine ero così concentrato sull'aggiornamento del mio progetto di biblioteca che non stavo notando che l'errore era causato da un sottomodulo non utilizzato (app demo) nidificato nel mio progetto di biblioteca. Una volta aggiornato il sottomodulo per abbinare i 26 strumenti di costruzione e 26+ librerie di progettazione e supporto, il mio problema è scomparso.

Non sono sicuro che sia quello che stai vedendo, ma personalmente stavo solo aggiornando la lib per rilasciarla di nuovo, quindi non mi importava del modulo dell'app di esempio e l'errore sembrava essere correlato a 26 sdk che ho solo toccato il modulo lib quindi non stavo pensando di controllare l'altro. Quindi questo è stato il problema da sempre. Spero che questo risolva anche te. Ho riscontrato questo errore in 2 progetti di libreria e l'ho risolto in entrambi.

Goodluck in entrambi i casi e se ciò non risolve il problema, si prega di condividere ciò che ha fatto. BTW 26.0.01 strumenti di costruzione e 26.1.0 progettazione e supporto è dove ho finito per andare alla fine, anche se 26.0.1 ha funzionato bene.


Risolve davvero il problema (se hai diversi moduli)
D. Sergeev,

8

Ho avuto questo errore esatto e mi sono reso conto che il mio compileSdkVersionera impostato su 25e il mio buildToolsVersionera impostato su"26.0.1" .

Così ho appena cambiato il compileSdkVersiondi26 e sincronizzati il Gradle. mi ha risolto il problema.

EDIT: il mio è targetSDKVersionstato impostato anche come26


8

Ho avuto un errore simile per il reagente nativo di YouTube e l'orientamento nativo di reazione.

Ho scoperto che il build.gradle di quei progetti usa compileSdkVersion 23ma la caratteristica: android: keyboardNavigationCluster è stata aggiunta da allora api 26(android 8).

Quindi come risolvere?

Un modo per risolvere questo problema è modificare il tuo /android/build.gradle (!!! NOT /android/app/build.gradle) e aggiungere quel codice nella parte inferiore del file.

Ciò consente di forzare SDK e BuildTool-Version utilizzati dai sottomoduli:

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

7

Ho anche affrontato questo problema, devi solo apportare 2 modifiche:

Nome file: android / build.gradle menziona questo sotto codice

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

Nome file: android / app / build.gradle cambia la tua versione di compliesdk e buildToolVersion in questo modo:

compileSdkVersion 26 buildToolsVersion "26.0.2"

e dentro

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

7

Ho avuto lo stesso problema con il mio progetto Ionic 2, tutto quello che ho fatto per risolvere i problemi è stato

  • Apri "ionic_project_folder / platform / android / project.properties"
  • Cambia target = android-25 in target = android-26
  • Correre ionic build --release android

Spero che questo aiuti qualcuno!


Il mio progetto diventa target=android-26, ma mostra ancora questo errore
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'
                }
            }
        }
    }

puoi condividere più informazioni con il codice per una maggiore comprensione della tua risposta.
Prags il

Di solito è meglio spiegare una soluzione invece di pubblicare solo alcune righe di codice anonimo. Puoi leggere Come posso scrivere una buona risposta , e anche Spiegare risposte interamente basate sul codice
Anh Pham,

1
Grazie! Migliore risposta. In sostanza le dipendenze del progetto (progetti node_modules) avevano versioni sdk diverse. L'aggiunta di questo codice al livello principale build.gradle garantisce che tutte queste dipendenze utilizzino la versione sdk specificata e che il progetto sia in grado di creare. : D
Nigh7Sh4de,

4

Dopo aver aggiornato Android Studio a 3.0, se si verifica questo errore basta aggiornare le proprietà gradle, queste sono le impostazioni che hanno risolto il mio problema:

compileSdkVersion 26

targetSdkVersion 26

buildToolsVersion '26.0.2'

26.0.2costruire versioni risolto cose per me.
Karl Taylor,

3

Ho aggiornato il mio progetto app/build.gradleper avere

compileSDkVersion 26
buildToolsVersion '26.0.1'

Tuttavia, il problema riguardava effettivamente il react-native-fbsdkpacchetto. Ho dovuto modificare le stesse impostazioni in node_modules/react-native-fbsdk/android/build.gradle.


3

In Android Studio,
fai clic con il pulsante destro del mouse sul progetto (poiché avevo un progetto Cordova, avevo CordovaLib e Android: ho selezionato Android nel mio caso),

  1. Seleziona Apri le impostazioni del modulo
  2. Nella struttura del progetto modale che compare seleziona il progetto nella sezione moduli nel pannello laterale (di nuovo Android nel mio caso)
  3. Fare clic sulla scheda Dipendenze
  4. Fai clic sul pulsante più verde nell'angolo in alto a destra
  5. Seleziona Dipendenza dalla libreria
  6. Seleziona app-compat-v7 dal menu a discesa
  7. Progetto pulito e ricostruzione

Questo è un modo molto più semplice per risolvere questo problema rispetto alla modifica manuale di tutti i file.
Robert Liberatore,

2

L'ho colpito di recente e ricordo da dove viene. È una discrepanza tra la versione Xamarin.Android. * E la versione dell'SDK Android installata.

Le 15.5.3impostazioni predefinite del nuovo progetto VS2017 per nuGet Xamarin.Android.*sono 25.4.0.2e l'installazione VS predefinita per lo sviluppo multipiattaforma sono i seguenti pacchetti SDK Android:

  • Android 7.1- Torrone
    • Piattaforma Android SDK 25
    • API di Google Immagine di sistema Intel x86 Atom

Se avete aggiornato soluzione Nuget per Xamarin.Android.*per 26.1.0.1allora sarà necessario installare il follow nel SDK di Android:

  • androide 8.0 - Oreo
    • Piattaforma Android SDK 26
    • API di Google Immagine di sistema Intel x86 Atom

2

Stavo affrontando lo stesso problema per uno dei miei progetti PhoneGap (Android Studio 3.0.1). Per risolvere questo ho seguito il seguente passaggio

1) Fai clic destro sul nome del progetto (nel mio caso Android), seleziona "Apri le impostazioni del modulo"

2) Seleziona i moduli (Android e CordovaLib)

3) Fai clic su Proprietà in alto

4) Scegli la versione SDK Compile (ho scelto API 26: Android 8.0)

5) Scegli la versione di Build Tools (ho scelto 26.0.2)

6) Compatibilità sorgente (1.6)

7) Compatibilità target (1.6)

Fai clic su OK e ricostruisci progetto.

Il seguente link mostra le mie impostazioni per il passaggio che ho seguito

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


2

quando si tenta di cambiare targetSDKVersione da 26 a 25 in quel momento mi è stata trovata la soluzione di Nessuna risorsa trovata che corrisponde al nome dato: attr 'android: keyboardNavigationCluster'. durante l'aggiornamento a Support Library 26.0.0

Basta Chage questo codice dal tuo 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'
            }
        }
    }
}

per

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'
            }
        }
    }
}

2

Ho riscontrato questo problema durante la compilazione di reazioni-native-fbsdk

Ho risolto questo problema cambiando build.gradledireact-native-fbsdk

a partire dal

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

per

compile('com.facebook.android:facebook-android-sdk:4.28.0')

1

Questo problema è stato causato da una delle librerie per me che aveva bisogno della versione 26 per la compilazione.

Rendere targetSdkVersion a 26 provocherà altri problemi e dovrai modificare la tua app per adattarla alla piattaforma Oreo. Questa non è la soluzione corretta per tutti.

Sto solo facendo il compileSdkVersion to 26ebuildToolsVersion to 26.0.2 funzionato per me.

Si dovrebbe anche aggiornare tutte le loro librerie di supporto per usare la 26.1.0 o successive.


1

aggiorna questi in gradi

compileSdkVersion 27 buildToolsVersion '27 .0.1 '


1

Ho risolto questo problema apportando alcune modifiche al file build.gradle

Le modifiche a root build.gradle sono le seguenti:

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

Le modifiche a build.gradle sono le seguenti:

compileSdkVersion 26 
buildToolsVersion "26.0.1"

e

dependencies {
    compile 'com.android.support:appcompat-v7:26.0.1'
}

1

Per chiunque utilizzi nativescript e affronti questo problema: puoi aggiungerlo

compileSdkVersion 26
buildToolsVersion '26.0.1'

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

Quindi esegui tns platform remove androide tns build androidnella radice del tuo progetto.


0

Assicurati di avere Android SDK 8.0 nel tuo ambiente di sviluppo. Stavo riscontrando lo stesso problema sul mio MAC e l'installazione dell'SDK 8.0 e i suoi strumenti lo hanno risolto. Sto riscontrando lo stesso problema su Windows. Sto scaricando l'SDK ora.


0

ho avuto lo stesso problema con ionico.

cordova platform remove android
cordova platform add android@6.4.0

E sostituisci in platform / android / projet.properties

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

Per

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

0

Per questo devi fare di seguito le cose: 1. fai clic sul progetto.

2.Aprire le impostazioni del modulo-> nella scheda delle proprietà-> modificare la compilazione di sdk e compilare la versione dello strumento in 26,26.0.0.

3.clicca ok.

Funziona per me dopo un'ora provato.



-1

Cancella il tuo progetto e costruiscilo di nuovo.

./gradlew  app:clean app:assembleDebug

Ma non funziona quando targetSdkVersion o compileSdkVersion è 25.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.