2016-05-17 6 views
9

Ein triviales aber nerviges Problem ist in den letzten Tagen aufgetaucht. Zuvor meine Menüoption, die einen Dialog aufgetaucht war, den Gesetzestext zu zeigen, für die Verwendung von Google-Service sehr voll ist (wenn auch ein wenig laden langsam), aber jetzt ist es null ohne Änderung an den Code ..getOpenSourceSoftwareLicenseInfo gibt null zurück jetzt

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(); 

     } 

Ist dies ein Problem für andere, dh ein neuer Fehler, der durch ein Google-Update oder eine andere Möglichkeit eingeführt wurde?

+0

Versuchen String LICENSE = GoogleApiAvailability.getInstance() getOpenSourceSoftwareLicenseInfo (this). –

+1

Danke, aber ich habe es versucht. –

Antwort

2

Ja, ein Upgrade von Google Play Services auf die letzte Version (9.0.0 zum Zeitpunkt der Erstellung dieser Antwort) löst das Problem.

Ich hatte das gleiche Problem und nach dem Upgrade von Google Play Services habe ich angefangen, die Lizenzen richtig zu bekommen.

3

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

Es scheint, dass Google die Dateinamen geändert wurde für oss_notice-third_party_licenses suchen. Sie haben im Grunde genommen die Lizenzinformationen für jede Implementierung von Spieldiensten unter 9.0.0 verloren.

Sie müssen die Version auf 9.0.0 aktualisieren, um die Lizenzinformationen für das Gerät mit späteren Versionen von Play Services zu erhalten.

EDIT (6. Juni 2016): Google untersucht das Problem jetzt.

Projekt Mitglied # 3 l ... @ google.com

Dank für die Berichte. Wir haben intern abgelegt und werden uns darum kümmern.

Status: Akzeptierte Labels: Interne-29143355

2

Wenn Sie eine alte App sind die Erhaltung und vernünftigerweise nicht aktualisieren aus einer sehr alten Version von Google Play-Dienste ohne eine ganze Reihe von alten Funktionen zu brechen Es gibt eine praktikable Umgehungsmöglichkeit:

Dekompilieren Sie die getOpenSourceSoftwareLicenseInfo() -Methode mit Android Studio, kopieren Sie die Methode in Ihr Projekt und ändern Sie die Zeile von "oss_notice" zu "third_party_licenses".

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

zu

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

Diese Methode ist veraltet und nicht mehr notwendig: https://developers.google.com/android/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getOpenSourceSoftwareLicenseInfo(android.content.Context)

Diese Lizenzinformationen werden in den Einstellungen angezeigt> Google> Open Source auf jedem Gerät läuft Google Play-Dienste Anwendungen müssen diesen Lizenztext nicht anzeigen. Diese Methode wird in zukünftigen Versionen der Google Play-Dienste entfernt.