2016-05-17 2 views
9

Тривиальная, но раздражающая проблема возникла за последние несколько дней. Раньше мой вариант меню, которое выскочило диалоговое окно, чтобы показать текст закона для использования Служб Google был очень полный (если немного медленно загружаться), но теперь она равна нулю без изменения кода ..getOpenSourceSoftwareLicenseInfo возвращает нулевое значение

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

     } 

Является ли эта проблема общей для других, то есть новая ошибка, появившаяся в результате обновления Google или какой-либо другой возможности?

+0

Попробуйте Струнный licenseInfo = GoogleApiAvailability.getInstance() getOpenSourceSoftwareLicenseInfo (это). –

+1

Спасибо, но я пробовал это. –

ответ

2

Да, обновление службы Google Play до последней версии (9.0.0 на момент написания ответа) решает проблему.

У меня была такая же проблема, и после обновления сервисов Google Play я начал правильно получать лицензии.

3

согласно https://code.google.com/p/gmaps-api-issues/issues/detail?id=9813

Это кажется, что Google изменил имя файла, он ищет от oss_notice к third_party_licenses. Они в основном нарушили получение информации о лицензии для любой реализации игровых сервисов ниже 9.0.0.

вам необходимо обновить версию до 9.0.0, чтобы получить информацию о лицензии для устройства с более поздними версиями игровых сервисов.

EDIT (6 июня 2016 года): Google изучает этот вопрос сейчас.

Project Member # 3 л ... @ google.com

Спасибо для отчетов. Мы зарегистрировали это внутренне и рассмотрим его.

Статус: Сдан Labels: Внутренние-29143355

2

Если вы поддерживаете старые приложения и не может быть разумно обновить с очень старой версии Google Play Services, не нарушая всего много древних особенностей , существует жизнеспособное обходное решение:

Декомпилируйте метод getOpenSourceSoftwareLicenseInfo() с Android Studio, скопируйте этот метод в свой проект и измените строку на пункт от «oss_notice» до «third_party_licenses».

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

в

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

Этот метод является устаревшим и больше не нужно: https://developers.google.com/android/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getOpenSourceSoftwareLicenseInfo(android.content.Context)

Эта лицензионная информация отображается в меню Настройки> Google> Open Source на любом работающем устройстве Службы Google Play. Приложениям не нужно отображать этот текст лицензии, и этот метод будет удален в будущих версиях сервисов Google Play.

Смежные вопросы