Messaggio LogCat: le risorse dei servizi di Google Play non sono state trovate. Controlla la configurazione del tuo progetto per assicurarti che le risorse siano incluse


317

Ho un'applicazione che utilizza l'API Android v2 di Google Maps. Ho aggiunto il google-play-services_libprogetto di libreria al mio spazio di lavoro e ho aggiunto un riferimento ad esso dal mio progetto di applicazione, seguendo le istruzioni in queste pagine:

Tutto sembra funzionare bene: l'app visualizza mappe e sovrapposizioni con i marker predefiniti. Quindi sono abbastanza sicuro di aver configurato correttamente i servizi di Google Play e le API di Google Maps.

Tuttavia, vedo questo messaggio nella finestra ADC LogCat ogni volta che viene inizializzata la visualizzazione della mappa (su un Nexus 7 di seconda generazione):

The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.

Il livello del messaggio è Errore e il tag lo è GooglePlayServicesUtil.

Questo sembra benigno, poiché la mia app funziona bene. Ma cosa posso fare o controllare per provare ad affrontare qualunque sia il problema?


Ulteriori informazioni: ogni volta che il messaggio "Risorse dei servizi di Google Play non sono state trovate" appare in LogCat, è preceduto da questi messaggi, che sono Avvertenze e taggati ResourceType:

getEntry failing because entryIndex 906 is beyond type entryCount 3

Failure getting entry for 0x7f0b038a (t=10 e=906) in package 0 (error -2147483647)

FWIW, non riesco a trovare la costante 0x7f0b038a da nessuna parte quando cerco i progetti, inclusi i file gen / R.java.

Ho controllato il contenuto del .apk generato e include tutte le risorse presenti nella google-play-services_lib/resdirectory.


Un altro aggiornamento: dopo aver aggiunto ActionBarSherlock e aver aggiornato targetSdkVersion nel mio manifest dalle 8 alle 17, ora vedo un altro errore nell'output di LogCat:

Could not find class 'maps.af.k', referenced from method 'maps.ag.an.a'

Maggiori dettagli su questo problema sono disponibili qui: Google Maps funziona bene su Android ma ho ancora un errore "Impossibile trovare la classe 'maps.i.k', a cui fa riferimento il metodo maps.z.ag.a"

E ancora una volta, l'app sembra funzionare bene. Forse è sicuro ignorare questi "errori"?


1
Succede lo stesso qui, usando Gradle + Android Studio! 08-06 19: 47: 00.376 2141-2141 / com.menor.android.assignment.tempos21 E / GooglePlayServicesUtil: le risorse dei servizi di Google Play non sono state trovate. Controlla la configurazione del tuo progetto per assicurarti che le risorse siano incluse.
Cesare

1
Prova a pulire tutti i progetti nell'area di lavoro (sotto Project > Clean). Ho notato che questo a volte risolve i problemi di R.java/resource.
Connor Brinton,

3
Stessa cosa sta succedendo qui, pulito non ha aiutato. Penso che sia iniziato dopo aver aggiornato le cose nel gestore sdk di Android
CeeRo

8
Stessa cosa qui (anche Eclipse), molto probabilmente è a causa dell'ultimo aggiornamento dell'SDK (22.0.5). Oggi Google Play Services è stato aggiornato a rev10, ma ho ancora il messaggio di errore. Cosa c'è di peggio; il mio frammento di Google Maps ha smesso di funzionare Non vuole visualizzare alcuna mappa, solo una tela blu infinita.
Magnus Johansson,

5
Goggle dice "Puoi tranquillamente ignorare questo messaggio. La tua app continuerà a recuperare e pubblicare banner pubblicitari".
sagus_helgy,

Risposte:


50

Questo è un bug nella libreria dei servizi di Google Play ed è archiviato qui nel numero 755 .

Sfortunatamente, non esiste ancora alcuna soluzione.


21
Questo post risale al 2014, sto ricevendo questo errore in questo momento, questo post è rilevante?
Talha,

@sachithkn abbastanza strano, ho avuto problemi nel mio codice, durante l'ispezione e il debug l'ho scoperto. Invece di mostrare un errore nel mio codice, si è arrestato in modo anomalo a livello di API, probabilmente ho fatto un po 'di codice errato aggiungendo try-catch da qualche parte che ha eseguito forzatamente il codice, eventualmente arrestandosi in modo anomalo alla chiamata API (o nell'API). Quindi ho corretto il mio codice e l'errore è sparito. Almeno questo è quello che penso sia successo.
Talha,

88

Le domande frequenti sull'SDK per gli annunci per dispositivi mobili di Google indicano che:

Continuo a ricevere l'errore "Le risorse dei servizi di Google Play non sono state trovate. Controlla la configurazione del tuo progetto per assicurarti che le risorse siano incluse. "

Puoi tranquillamente ignorare questo messaggio. La tua app continuerà a recuperare e a pubblicare banner pubblicitari.

Quindi, se hai inserito correttamente google-play-services_lib e ricevi annunci pubblicitari, non hai nulla di cui preoccuparti (suppongo ...)


1
forse puoi ignorare, ma continuo a entrare in un codice che non esiste, ogni volta che scelgo di eseguire il debug dell'app.
sviluppatore Android

Cosa succede se non utilizzo annunci pubblicitari? Google Play Services cercherebbe ancora di fare qualunque cosa generi il messaggio?
Kristopher Johnson,

Lo vedo anche in un'altra app in cui mi registro solo per le notifiche push GCM e tutto sembra funzionare bene.
Grebulon,

quando eseguo un'app nell'emulatore Android gli annunci iniettati vengono visualizzati, ma se
eseguo la

Questa è la mia esperienza e opinione anche
Noor Hossain,

36

Mi sono appena imbattuto in questo problema questa mattina e mi è sembrato molto strano poiché la mia applicazione funzionava bene fino ad oggi. Stavo ottenendo lo stesso identico messaggio "Le risorse dei servizi di Google Play non sono state trovate ...".

Ho provato ad aprire la normale applicazione Google Maps per vedere se potevo ottenere la mia posizione, ma non l'ho trovata. Anche dopo aver atteso 5 minuti, il che è più che sufficiente per ottenere normalmente una posizione anche dal fornitore di servizi tramite la torre cellulare. Quindi ho controllato i servizi di localizzazione.

Ad ogni modo, il problema si è rivelato essere quello sul mio S3 in Servizi di localizzazione -> Servizi di localizzazione di Google . Non è stato verificato. Le altre due opzioni di localizzazione sono state selezionate ( Servizi di localizzazione VZW e Servizi GPS autonomi ), ma l'ultima non è stata Servizi di localizzazione di Google. Dopo averlo attivato, le normali Google Maps potevano trovare la mia posizione e la mia applicazione poteva trovare la mia posizione e il problema è scomparso.

Il messaggio di errore viene visualizzato a causa di:

mMap.setMyLocationEnabled(true);

quando i servizi di localizzazione di Google non sono abilitati.

Dopo aver fatto qualche altro test, sembra che la posizione corrente sia nulla (non può essere determinata da tutte le fonti), quindi si otterrà questo errore quando si tenta di attivare setMyLocationEnabled.


Questa è la radice del problema anche da quello che posso dire. Se rimuovi la chiamata per setMyLocationEnabled (), non otterrai più l'errore. Anche se è elencato come errore, sembra innocuo poiché l'app continua a funzionare bene e anche le funzionalità per visualizzare la mia posizione nell'applicazione continuano a funzionare bene. Non sono sicuro del motivo per cui si presenta come un errore.
Guardius,

19
setMyLocationEnabled non ha nulla a che fare con questo, poiché su tutti i miei dispositivi i servizi di localizzazione sono abilitati nelle impostazioni. Sospetto che l'ultimo google-play-services.jar sia rotto.
IgorGanapolsky,

Il mio problema aveva una soluzione quasi simile di cui avevo bisogno per attivare la mia posizione su Android 4.4 in realtà vedi l'app che richiede la posizione e la mia app era una di quelle. Immagino che abbia a che fare con setOnMyLocationChangeListener piuttosto che setMyLocationEnabled che dà quell'errore. È necessario un controllo di qualche tipo prima di poter richiedere la posizione e verificare se i servizi di localizzazione sono attivi. Dovrebbe aiutare
Jayshil Dave,

32

Ho decompilato la libreria di revisione 14 dei servizi di Google Play. Penso che ci sia un bug in com.google.android.gms.common.GooglePlayServicesUtil.class. La stringa di cui sopra appare solo in un punto:

public static int isGooglePlayServicesAvailable(Context context) {
    PackageManager localPackageManager = context.getPackageManager();
    try {
        Resources localResources = context.getResources();
        localResources.getString(R.string.common_google_play_services_unknown_issue);
    } catch (Throwable localThrowable1) {
        Log.e("GooglePlayServicesUtil", "The Google Play services resources were not found. "
                + "Check your project configuration to ensure that the resources are included.");
    }
....

Non c'è R.classnel com.google.android.gms.commonpacchetto.

C'è un import com.google.android.gms.R.string;, ma nessun uso di string.something, quindi immagino che questo sia l'errore - ci dovrebbe essere import com.google.android.gms.R;.

Tuttavia, il isGooglePlayServicesAvailablemetodo funziona come previsto (ad eccezione della registrazione di tale avviso), ma ci sono altri metodi in quella classe, che utilizza non importati R.class, quindi potrebbero esserci altri errori. Sebbene i banner nella mia applicazione funzionino bene ...


20

Devi aggiungere google-play-services-libcome progetto di libreria. Hanno aggiornato l' SDK . Ci sono diversi tutorial in giro. Per Eclipse è facile:

Right click project -> properties -> Android

Inserisci qui la descrizione dell'immagine

Per procedure dettagliate più dettagliate:

Importazione del progetto biblioteca

Come far funzionare GoogleMaps sull'emulatore


15
Come indicato nella domanda, ho aggiunto il progetto di libreria google-play-services_lib e tutto funziona perfettamente.
Kristopher Johnson,

ok, non hai esplicitamente detto che usi google-play-services-lib come PROGETTO, quindi ho provato a segnalarlo. ripenserò il problema.
bofredo,

4
FWIW, ho esaminato il .apk generato e contiene tutte le risorse del progetto google-play-services_lib, quindi sono abbastanza sicuro che il progetto della biblioteca sia stato aggiunto e referenziato correttamente.
Kristopher Johnson,

2
Sai come eseguire l'operazione equivalente in Android Studio? Non desidero importarlo con Maven
Raphael Royer-Rivard,

12

Ho avuto anche questo problema. Il modo in cui l'ho risolto è stato il seguente:

  1. Elimina il progetto-libreria google-play-services_lib.
  2. Rimuovi il riferimento (ora non valido) google-play-services_lib in [il tuo progetto]> Proprietà> Android.
  3. Importato il progetto-libreria google-play-services_lib da android-sdk-x/extras/google_play_services/libproject. Quando importi un progetto, ottieni l'opzione "Copia progetto nell'area di lavoro". Deselezionalo.
  4. Aggiungi il riferimento (ora valido) di google-play-services_lib al tuo progetto con [il tuo progetto]> Proprietà> Android.

Questo ha fatto il trucco per me. Spero aiuti anche te!


7
Solo un FYI non dovresti importare servizi di Google Play direttamente dall'SDK. Se lo fai, dovresti conservare la casella "Copia progetto nell'area di lavoro", oppure copia la directory nell'area di lavoro o, meglio ancora, nel sistema di controllo della versione. Ho affrontato questo problema oggi in cui alcuni sviluppatori utilizzavano una versione precedente e alcuni utilizzavano l'ultimo e il codice del progetto stava fallendo con l'ultimo perché non aveva i metadati di google maps richiesti nel Manifest.
Matt K,

Sai come eseguire l'operazione equivalente in Android Studio? Non desidero importarlo con Maven
Raphael Royer-Rivard,

4

Ho riscontrato questo problema quando utilizzo Admob SOLO perché ho dimenticato di scrivere il mio ID unità pubblicitaria in @string.


Dove hai detto che ti sei dimenticato di farlo? Sto creando il mio avviso a livello di codice e passando anche tale ID a livello di codice.
Fran Marzoa,

3

Ho avuto lo stesso problema. Nella Console delle API di Google, dovresti verificare che sia stata generata una sola chiave per quell'app. Ho avuto un tratto in cui ho migrato il mio codice da un PC al successivo e così via (è diventato disordinato) e avevo più chiavi per il mio unico progetto. Le chiavi più vecchie sono tutte elencate come inattive nella pagina della console API, ma per qualche motivo ha causato un conflitto. Dopo averli eliminati completamente, l'ho eseguito di nuovo e ha funzionato.


3

Per quanto mi riguarda ho risolto questo problema nel prossimo modo - come dice developer.android.com, dopo aver aggiunto google-play-services_lib dovresti aggiungere il <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> tuo manifest, ma sul nuovo SDK otterrai sempre un errore:

Errore: nessuna risorsa trovata che corrisponde al nome specificato (in "valore" con valore "@ numero intero / google_play_services_version").

Per risolvere questo errore molte persone consigliano di utilizzare un valore non elaborato , 4030500 , invece di @integer/google_play_services_version, ma è corretto SOLO per la revisione 13 dei servizi Google.

Se usi una versione precedente o precedente per Froyo (come me), dovresti aggiungere un altro valore. Per sapere quale valore dovresti inserire basta aprire un manifest dei servizi di Google Play e copiare e incollare un valore version_code. Per i servizi Froyo, è 3265130 . Dopo aver aggiunto questo ho smesso di ottenere questo errore e ho finalmente iniziato a ricevere le coordinate nella mia applicazione.


4030500 mi ha dato un errore. Tuttavia, nel logcat è stato fornito il valore corretto da utilizzare.
Maverick,

@Maverick qual è la tua versione di google_play_services?
Dai un'occhiata al

3

Per me l'unica soluzione funzionante era quella di aggiungere anche la libreria android-support-v7-appcompat . Sembra che questa libreria sia necessaria anche per sbarazzarsi di quel messaggio. Da allora le mie applicazioni hanno funzionato benissimo!

Spero possa essere d'aiuto!


Questo non ha funzionato per me per quale sdk hai compilato il tuo progetto?
JPM,

2

Ho avuto lo stesso problema qui. Come Magnus ha detto sopra, per me stava accadendo a causa di un aggiornamento SDK alla versione 22.0.5.

Dopo aver eseguito un aggiornamento completo nel mio SDK Android (compresi i servizi Google Play) e i plug-in Android in Eclipse , sono stato in grado di utilizzare la libreria dei servizi di riproduzione nella mia applicazione.


2

Per utenti IntelliJ IDEA

Dopo aver lottato per un paio di giorni, l'unico modo per farlo funzionare in IntelliJ IDEA 13 era importare la libreria. Ecco tutti i passaggi:

  1. Aggiorna Android SDK in modo da installare l'ultimo servizio di riproduzione.
  2. Vai alla android-sdk-root/extras/google/google_play_services/libprojectdirectory.
  3. Copialo google-play-services_libe incollalo accanto al tuo progetto IntelliJ IDEA (alcuni consigliano di utilizzare direttamente questa directory, ma consiglio di mantenere pulito questo codice!).
  4. Aprire le proprietà del progetto IDEA IntelliJ e aggiungere un nuovo modulo google-play-services_lib.
  5. Controlla se è contrassegnato come libreria.
  6. Aggiungi il google-play-services_libprogetto di libreria come dipendenza dal progetto principale.
  7. Aggiungi google-play-servicesanche una libreria come libreria di dipendenze.

Sul link che ho fornito di seguito, puoi vedere un'immagine di come appare nel mio IntelliJ IDEA 13. Non funzionerebbe senza aggiungere solo uno di questi due.

PS. Ho fatto una domanda: Perché IntelliJ IDEA 13 richiede sia il progetto lib che la libreria stessa (google-play-service) da aggiungere come dipendenza? , perché è un must in IntelliJ IDEA 13 e perché non possiamo importare solo la libreria o il progetto.


Potresti elencare le esatte manipolazioni che stai facendo per importare il progetto google-play-services_lib come dipendenza del modulo (io uso Android Studio 0.3.6)
Raphael Royer-Rivard

@ RaphaelRoyer-Rivard Fatto! Tieni presente che questi passaggi sono per IDEA 13, non per Android Studio, quindi alcuni passaggi potrebbero differire.
sandalone,

In realtà, sono le operazioni 4 e 5 che mi causano problemi. Apro la Struttura del progetto con F4, quindi vado a Moduli, faccio clic su + e c'è una finestra popup denominata Nuovo modulo. Devo fare riferimento alla cartella google-play-services_lib da qui (nel campo Radice contenuti)?
Raphael Royer-Rivard,

@ RaphaelRoyer-Rivard Direttamente alla cartella non alla libreria JAR. E aggiungi l'intero progetto come modulo. È questo quello che hai chiesto?
sandalone,

Bene, non è semplice come selezionare una cartella nel mio caso. Devo scegliere il tipo di modulo da questa lista ( Java, Maven, Gradle, JavaFX Application, Command Line App, Groovy, Griffon, Gradle: Android Module, Gradle: Android Project, Gradle: Java Library). E quindi selezionando una cartella nel campo Content root. È Javail tipo di modulo giusto da scegliere?
Raphael Royer-Rivard,

1

Ho anche avuto lo stesso problema. All'inizio funzionava bene allora, ma qualche tempo dopo ho disinstallato completamente la mia applicazione dal mio dispositivo (la stavo eseguendo sul mio cellulare) e l'ho eseguita di nuovo, e mi mostra lo stesso errore.

Avevo tutte le librerie e le risorse incluse mentre funzionava, ma continuavo a riscontrare questo errore, quindi ho rimosso tutti i riferimenti e le librerie dalla build del mio progetto, ho aggiornato il servizio Google alla versione 10, ho disinstallato l'applicazione completamente dal dispositivo e poi ho aggiunto di nuovo tutto risorse e librerie ed eseguito e ha iniziato a funzionare di nuovo.

Una cosa da notare qui è che durante l'esecuzione vedo ancora questo messaggio di errore nel mio LogCat , ma sul mio dispositivo ora funziona bene.


1

Ho anche avuto lo stesso problema. Ho anche provato a cercare soluzioni, ma dopo che non ho trovato nessuna soluzione funzionante, ho provato a riavviare il mio dispositivo mobile (dispositivo Android) e ho risolto il problema.

Per favore, provalo! Riavvia il tuo dispositivo mobile ed Eclipse per stare sul sicuro e controlla se funziona.



0

LE: Ho appena ricordato che si trattava di utilizzare Google Maps, quindi la mia risposta non risponde davvero alla domanda iniziale, ma spero che alcune persone risparmieranno ore / giorni a sbattere la testa sui banchi se hanno lo stesso problema con Play Game Services .

Anch'io ho avuto questo errore incredibilmente criptico. Non è stato per nulla correlato ai servizi di localizzazione per me, ma con la non corretta lettura della documentazione , più precisamente il passaggio 3, in cui si dice di aggiungere quanto segue al tuo AndroidManifest.xml:

<meta-data android:name="com.google.android.gms.games.APP_ID"
    android:value="@string/app_id" />

Ovviamente dovresti anche avere il seguente AndroidManifest.xml

<meta-data android:name="com.google.android.gms.version"
   android:value="@integer/google_play_services_version"/>

Stavo usando il BaseGameActivityloro suggerimento di utilizzare quando si desidera implementare i servizi di gioco, quindi sono rimasto un po 'sorpreso che non ha funzionato immediatamente. Ho creato un modulo dedicato per una copia del google-play-services_lib, ne avevo l'ultima versione (al 4323000momento della scrittura) e l'ho impostato come dipendenza del modulo dal mio modulo principale (usando Android Studio qui). Ma quella piccola riga sopra ha risolto tutto.


0

Ho avuto lo stesso problema. Come ha detto Kristopher Johnson, ho fatto riferimento a google-play-services_lib, ma non ha funzionato. Ho aggiunto google_play_services_lib.jar (guarda la tua cartella SDK / google) sotto proprietà progetto / percorso build java / librerie / dipendenze android ed errore sparito.


0

Ho avuto lo stesso identico problema lavorando con diversi sviluppatori. Se corro il progetto dal mio ADT funziona bene, ma dal loro non è ..

La risposta è stata quella di inserire la chiave SHA-1 con il nome del pacchetto nella console dell'API di Google e la mia. Siamo tre sviluppatori, quindi abbiamo dovuto inserire tre chiavi SHA-1.

Spero che ti dia qualche ispirazione ...


0

Nel mio caso significava che c'è un qualche tipo di errore nella mia implementazione e dice che non riesce a trovare la risorsa per visualizzare correttamente il messaggio di errore in LogCat . Quando ho risolto quell'errore nella mia implementazione, anche il problema di LogCat era scomparso. Quindi, a meno che non ti manchi qualche risorsa davvero necessaria, non dovresti concentrarti per riparare le risorse mancanti, ma piuttosto per sistemare la tua implementazione.

L'errore, a proposito, è stato che stavo eseguendo annunci in modalità debug senza andare in modalità test annunci.


0

Credo che si tratti di un bug nell'attuale libreria di Google Play Services, revisione 15, poiché la causa sottostante sembra essere causata dalla mancata lettura di un file di risorse:

W / ResourceType (25122): Richiesta della risorsa 0x7f0c000d non riuscita perché è complessa
E / GooglePlayServicesUtil (25122): le risorse dei servizi di Google Play non sono state trovate. Controlla la configurazione del tuo progetto per assicurarti che le risorse siano incluse.

Sembra che la libreria di Google Play Services tenti di leggere un file di risorse e abbia un generico catch-all che visualizza questo messaggio di errore quando la risorsa non riesce a caricare. Ciò corrisponde a ciò che kreker è riuscito a decompilare dalla libreria e spiegherebbe i messaggi di registro.


0

Sai, non credo sia un bug di SDK. "Le risorse dei servizi di Google Play non sono state trovate. Controlla la configurazione del tuo progetto per assicurarti che le risorse siano incluse" è esattamente corretto. Il file jar inserito in / libs non contiene alcuna risorsa come * xml, * png ecc. I log degli errori significano questo. E se hai mai aggiunto librerie di supporto come v4 , v7-appcompat , v7-cardview , v7- recyclerview , v7-pallete o v7-gridlayout , a volte registri che implicano che le risorse sono insomma si verificano. Tutto questo perché le risorse nei progetti non vengono importate. Quindi, importa i progetti di supporto come libreria APPENA POSSIBILE. Ovviamente, devi prima scaricare questi progetti di supporto tramite SDK Managerall'oggetto degliextra


0

Ho avuto lo stesso problema che ho creato la propria API per verificare se il servizio Google Play è installato o meno, funziona bene per me. Basta passare le informazioni sul pacchetto del servizio Google Play che ti darà il valore

sotto è il codice:

pubblico booleano statico isGooglePlayServicesInstalled () { try { ApplicationInfo info = NativeActivity . ATTUALE . getPackageManager (). getApplicationInfo ( "com.google.android.gms" , 0 );

LOG.d(LOG_IDENTIFIER, "info : "+ info); return true; } catch(PackageManager.NameNotFoundException e) { e.printStackTrace(); LOG.e(LOG_IDENTIFIER, "NameNotFoundException : "+ e.getMessage()); } return false; }

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.