2015-03-12 11 views
15

A partire da ieri, 11 marzo, ho iniziato a vedere un picco negli arresti di SecurityException. (Vedi la traccia dello stack di seguito.) Anche gli altri vedono questa eccezione? Le ricerche non hanno trovato nulla.PublisherAdView.loadAd() lancio SecurityException - getTasks() richiede android.permission.GET_TASKS

La mia domanda è se l'aggiornamento a una versione più recente di Play Services risolve il problema.

Ecco lo stack:

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.h.a(SourceFile:703) 
    at com.google.android.gms.ads.internal.a.a(SourceFile:1634) 
    at com.google.android.gms.ads.internal.a.a(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$a.a() 
    at com.google.android.gms.internal.bh.a() 
    at com.google.android.gms.ads.doubleclick.PublisherAdView.loadAd() 

Ho intenzione di pubblicare una patch con un try/catch intorno la chiamata a loadAd(). Ho anche intenzione di aggiornare da PlayServices 6.1.71 a 6.5.87 nel prossimo futuro, ma sono riluttante a introdurre tale rischio in una versione patch a meno che non si tratti di una soluzione nota.

mi hanno segnalato il bug a Google qui: https://groups.google.com/forum/#!category-topic/google-admob-ads-sdk/android/IuSQriNWKps

Modifica/Chiarimento: Sono consapevole che questo potrebbe essere evitato SecurityException richiedendo il permesso GET_TASKS, ma non ho bisogno che il permesso per la mia app, e non vedo perché dovrebbero essere gli annunci AdMob.

Sono anche consapevole che GET_TASKS è stata deprecata come di API 21, ma questo target app API 19.

+1

Lo stesso qui, un sacco di questi ora. Il raggruppamento di AdMob all'interno di Google Play Services non è l'idea più brillante che Google abbia avuto. News bug ogni mese e dobbiamo aspettare settimane per una correzione. –

+1

Sì, vedo anche molti di questi arresti anomali. Trovato un rapporto di arresto anomalo qui, https://groups.google.com/forum/#!category-topic/google-admob-ads-sdk/android/IuSQriNWKps. Non sono sicuro se hai segnalato questo. Spero che distribuiscano presto una nuova versione. Potrebbe avere senso aggiungere solo il permesso fino a quel momento. – MRK

+0

Anche io ho visto accadere. Penso che farò quello che @MRK ha detto di aggiungere il permesso finché il problema non sarà risolto. –

risposta

4

Google segnala che è stata rilasciata una correzione e che "dovremmo vedere il tasso di incidenza di quella particolare diminuzione di eccezione, e entro una settimana scomparire del tutto ". Inoltre, è una correzione lato server e non richiede un aggiornamento ai servizi di riproduzione.

La conversazione completa è disponibile qui: https://groups.google.com/forum/#!category-topic/google-admob-ads-sdk/android/IuSQriNWKps

Nel frattempo, è possibile prendere la SecurityException e consentire la chiamata a loadAd() a fallire, o - come ha notato @dthacker - è possibile includere il permesso GET_TASKS in AndroidManifest.xml. Se si sceglie di includere questa autorizzazione, si noti che la si rimuove dopo aver scelto l'API 21, poiché l'autorizzazione non è più applicata (apparentemente perché hanno ridotto la quantità di informazioni fornite, ora che le attività orientate ai documenti potrebbero causare perdite di privacy) .

10

Questo può essere accaduto perché non si dispone di GET_TASKS aggiunto nel vostro manifesto

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

Or perché è stato deprecato in API 21, vedere ulteriori informazioni su come ottenere informazioni simili senza lo GET_TASKSenter link description here

+2

Grazie, @dthacker. Sono consapevole che potrei richiedere l'autorizzazione GET_TASKS, ma la mia app non ne ha bisogno e non vedo perché gli annunci AdMob dovrebbero averne bisogno. La versione dell'app in questione ha ospitato annunci con successo per due mesi e solo ieri ho iniziato a vedere questa eccezione. – markproxy

Problemi correlati