PublisherAdView.loadAd () throwing SecurityException – getTasks () требует android.permission.GET_TASKS

Начиная с 11 марта, я начал видеть всплеск в SecurityException. (См. Таблицу стека ниже.) Другие видят это исключение? Поисков ничего не получилось.

Мой вопрос заключается в том, исправляет ли обновление до более новой версии Служб Службы.

Вот стопка:

java.lang.SecurityException: Permission Denial: getTasks() from pid=30319, uid=10157 requires android.permission.GET_TASKS at android.os.Parcel.readException(Parcel.java:1474) at android.os.Parcel.readException(Parcel.java:1428) at android.app.ActivityManagerProxy.getTasks(ActivityManagerNative.java:2726) at android.app.ActivityManager.getRunningTasks(ActivityManager.java:791) at android.app.ActivityManager.getRunningTasks(ActivityManager.java:827) at com.google.android.gms.ads.internal.util.ha(SourceFile:703) at com.google.android.gms.ads.internal.aa(SourceFile:1634) at com.google.android.gms.ads.internal.aa(SourceFile:530) at com.google.android.gms.ads.internal.client.t.onTransact(SourceFile:81) at android.os.Binder.transact(Binder.java:361) at com.google.android.gms.internal.bd$a$aa() at com.google.android.gms.internal.bh.a() at com.google.android.gms.ads.doubleclick.PublisherAdView.loadAd() 

Я планирую опубликовать патч с try / catch вокруг вызова loadAd (). Я также планирую перейти с PlayServices 6.1.71 на 6.5.87 в ближайшем будущем, но я не хочу вводить этот риск в выпуск исправлений, если это не известное решение.

Я сообщил об ошибке Google здесь: https://groups.google.com/forum/#!category-topic/google-admob-ads-sdk/android/IuSQriNWKps

Редактирование / уточнение: я знаю, что этого безопасного исключения можно избежать, запросив разрешение GET_TASKS, но мне не нужно это разрешение для моего приложения, и я не понимаю, почему реклама AdMob тоже.

Я также знаю, что GET_TASKS устарел от API 21, но это приложение предназначено для API 19.

Solutions Collecting From Web of "PublisherAdView.loadAd () throwing SecurityException – getTasks () требует android.permission.GET_TASKS"

Это либо потому, что у вас нет GET_TASKS добавленных в манифест

 <uses-permission android:name="android.permission.GET_TASKS" /> 

Или потому, что он устарел в API 21, см. Дополнительную информацию о том, как получить подобную информацию, без GET_TASKS ссылки GET_TASKS здесь

Google сообщает, что исправление было выпущено, и что мы «должны увидеть частоту снижения этого конкретного исключения, а в течение недели полностью исчезнуть». Кроме того, это исправление на стороне сервера и не требует обновления для Play Services.

Полный разговор доступен здесь: https://groups.google.com/forum/#!category-topic/google-admob-ads-sdk/android/IuSQriNWKps

Тем временем вы можете либо поймать SecurityException и разрешить вызову loadAd () сбой, либо – как заметил @dthacker – вы можете включить разрешение GET_TASKS в AndroidManifest.xml. Если вы решите включить это разрешение, обратите внимание, что вы удаляете его, когда вы нацеливаете API 21, поскольку разрешение больше не применяется (видимо, потому, что они уменьшили объем предоставленной информации, теперь, когда задачи, ориентированные на документы, могут привести к утечке конфиденциальных данных) ,