2016-05-17 12 views
9

Un problema banale ma fastidioso è emerso negli ultimi giorni. In precedenza la mia opzione di menu che sono saltate fuori una finestra per mostrare il testo giuridico per l'utilizzo di Google servizi era molto pieno (se un po 'lento a caricarsi), ma ora è nullo senza alcuna modifica al codice ..getOpenSourceSoftwareLicenseInfo restituisce null ora

GoogleApiAvailability apiAvailability = GoogleApiAvailability.getInstance(); 
     int resultCode = apiAvailability.isGooglePlayServicesAvailable(this); 
     if (resultCode == ConnectionResult.SUCCESS) { 
      AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); 
      builder.setTitle("About"); 
      builder.setMessage(apiAvailability.getOpenSourceSoftwareLicenseInfo(this)); 
      builder.setPositiveButton("OK", null); 
      builder.show(); 

     } 

Si tratta di un problema comune ad altri, ad esempio un nuovo bug introdotto da un aggiornamento di Google o qualche altra possibilità?

+0

Prova String = LicenseInfo GoogleApiAvailability.getInstance() getOpenSourceSoftwareLicenseInfo (questo).; –

+1

Grazie, ma ci ho provato. –

risposta

2

Sì, l'aggiornamento di Google Play Services alla versione più recente (9.0.0 al momento della stesura di questa risposta) risolve il problema.

Ho avuto lo stesso problema e dopo aver aggiornato i servizi di Google Play ho iniziato a ottenere le licenze correttamente.

3

in base alle https://code.google.com/p/gmaps-api-issues/issues/detail?id=9813

Sembra che Google ha cambiato il nome del file che era alla ricerca di oss_notice-third_party_licenses. Fondamentalmente sono riusciti a ottenere le informazioni sulla licenza per qualsiasi implementazione di servizi di gioco inferiore a 9.0.0.

sarà necessario aggiornare la versione alla 9.0.0 per ottenere le informazioni sulla licenza per il dispositivo con versioni successive di servizi di riproduzione.

EDIT (6 giugno 2016): Google sta esaminando il problema ora.

Progetto Membro # 3 l ... @ google.com

Grazie per le segnalazioni. Abbiamo archiviato lo internamente e lo esamineremo.

Stato: accettati Etichette: interne-29143355

2

Se si sta mantenendo una vecchia applicazione e non si può ragionevolmente aggiornare da una versione molto vecchia di Google Play Services senza rompere un sacco di caratteristiche antiche esiste una soluzione alternativa:

Decompilare il metodo getOpenSourceSoftwareLicenseInfo() con Android Studio, copiare il metodo nel progetto e modificare la riga in punto da "oss_notice" in "third_party_licenses".

Uri var1 = (new android.net.Uri.Builder()).scheme("android.resource").authority("com.google.android.gms").appendPath("raw").appendPath("oss_notice").build(); 

a

Uri var1 = (new android.net.Uri.Builder()).scheme("android.resource").authority("com.google.android.gms").appendPath("raw").appendPath("third_party_licenses").build(); 
1

Questo metodo è stato deprecato e non è più necessaria: https://developers.google.com/android/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getOpenSourceSoftwareLicenseInfo(android.content.Context)

Queste informazioni di licenza viene visualizzato in Impostazioni> Google> Open Source su qualsiasi dispositivo in esecuzione Google Play Services. Le applicazioni non hanno bisogno di visualizzare questo testo di licenza e questo metodo verrà rimosso in una versione futura dei servizi di Google Play.