GetOpenSourceSoftwareLicenseInfo возвращает null сейчас

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

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 или какой-либо другой возможности?

В соответствии с 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 сейчас изучает этот вопрос.

Участник проекта № 3 l … @ google.com

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

Статус: Принятые ярлыки: Internal-29143355

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

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

Если вы поддерживаете старое приложение и не можете разумно обновлять его из очень старой версии 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();