Google Play Services 5.0.77

Desde el 25 de junio dos aplicaciones no relacionadas que están usando anuncios comenzaron a tener este NPE

java.lang.NullPointerException at zo.a(SourceFile:172) at aeh.a(SourceFile:120) at afw.run(SourceFile:14) at afy.run(SourceFile:30) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) at java.lang.Thread.run(Thread.java:856) 

Creo que esto está relacionado con la actualización de los servicios de Google Play. ¿Hay alguien capaz de ayudarme en este tema?

Sólo para confirmar que el problema está relacionado con el servicio de juego que he logrado obtener esto de crashlytics de un hilo llamado AdWorker:

 thread at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor(Thread.java:1231) at sun.misc.Unsafe.park(Unsafe.java:323) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:813) at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:973) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1282) at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:207) at zo.a(SourceFile:147) at zo.a(SourceFile:170) at aeh.a(SourceFile:120) at afw.run(SourceFile:14) at afy.run(SourceFile:30) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) at java.lang.Thread.run(Thread.java:856) 

No es el lugar correcto … pero no hay ningún lugar donde denunciarlos

Número de excepciones que tiene doble desde el 1 de julio, ahora es casi 3 veces lo que era el 27 de junio.

Problema en el proyecto de código de google de android

El debate está ahora en este hilo en admob google Heading group

Última respuesta de google "Estamos conscientes de estos fallos y estamos trabajando en arreglos, esperamos sacar estos arreglos en la próxima semana o dos". (7 de julio)

La solución encontrada por Mateusz Matela en https://groups.google.com/forum/#!topic/google-admob-ads-sdk/DkjtCx_Zvn8 .

He probado en un Motorola DEFY + que se estrelló de este error dos de tres veces. Parece que funciona incluso cuando las advertencias assositated con este error aparecen en el registro. Incluso dice "hilo de AdWorker lanzado una excepción". Mis anuncios incluso vuelven a aparecer cuando continúan utilizando la aplicación.

 final UncaughtExceptionHandler defaultHandler = Thread.getDefaultUncaughtExceptionHandler(); Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() { @Override public void uncaughtException(Thread thread, Throwable ex) { if (thread.getName().startsWith("AdWorker")) { Log.w("ADMOB", "AdWorker thread thrown an exception.", ex); } else if (defaultHandler != null) { defaultHandler.uncaughtException(thread, ex); } else { throw new RuntimeException("No default uncaught exception handler.", ex); } } }); 

Hoy, Google publica esto: http://android-developers.blogspot.fr/2014/07/google-play-services-5.html

Y ahora funciona para mí. Sólo inténtalo de nuevo para actualizar GooglePlayService en tu móvil y actualizar tu ADT.

Editar:

Código para verificar la versión GPS:

 // Check if GooglePlay Service is good; resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this.getActivity()); if (resultCode != ConnectionResult.SUCCESS) { if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) { GooglePlayServicesUtil.getErrorDialog(resultCode, this.getActivity(), 1).show(); rootView = inflater.inflate(R.layout.fragment_googleplayerror, container, false); return rootView; } else { Log.i(Tag, "This device is not supported."); getActivity().finish(); } } 

Tengo exactamente los mismos errores en diferentes versiones de Android después de la actualización de admob a los servicios de Google Play. Creo que no se puede resolver por parte del usuario.

Está relacionado con la actualización de Play services, vea el registro de fallos de muestra a continuación. Dado que se bloquea onCreate podría estar ocurriendo cuando el usuario haga clic en un anuncio o un tipo específico de anuncio

 USER_COMMENT= ANDROID_VERSION=4.1.2 APP_VERSION_NAME=8.9 BRAND=samsung PHONE_MODEL=GT-I9100 CUSTOM_DATA= STACK_TRACE=java.lang.RuntimeException: Unable to start activity ComponentInfo{xxxxx/com.google.android.gms.ads.AdActivity}: java.lang.NullPointerException at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135) at android.app.ActivityThread.access$700(ActivityThread.java:140) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4921) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.NullPointerException at acm.a(SourceFile:215) at acz.onTransact(SourceFile:58) at android.os.Binder.transact(Binder.java:326) at com.google.android.gms.internal.ck$a$a.onCreate(Unknown Source) at com.google.android.gms.ads.AdActivity.onCreate(Unknown Source) at android.app.Activity.performCreate(Activity.java:5206) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074) ... 11 more java.lang.NullPointerException at acm.a(SourceFile:215) at acz.onTransact(SourceFile:58) at android.os.Binder.transact(Binder.java:326) at com.google.android.gms.internal.ck$a$a.onCreate(Unknown Source) at com.google.android.gms.ads.AdActivity.onCreate(Unknown Source) at android.app.Activity.performCreate(Activity.java:5206) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135) at android.app.ActivityThread.access$700(ActivityThread.java:140) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4921) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794) at dalvik.system.NativeStart.main(Native Method) 

Estaba viendo exactamente el mismo problema con una de mis aplicaciones desde el 25 de junio también. Tienes razón, este es un problema de Google, creo que he logrado resolverlo actualizando mi Biblioteca de soporte de Android a la versión 20 (estaba usando android-support-v4.jar) y mis servicios de Google Play a la versión 17.

No estoy seguro de cuál de las dos revisiones se resolvió esto, pero ha sido 24 horas y los informes Crash se han detenido.

EDIT: Lo siento todavía no se ha resuelto. Pero tengo una respuesta del equipo AdMod SDK que están buscando en él. https://groups.google.com/forum/#!topic/google-admob-ads-sdk/DkjtCx_Zvn8

Esta es una solución parcial y parece (hasta ahora) para arreglar el 100% de los accidentes: debe posponer la solicitud de anuncio de unos milisegundos para evitar este accidente!

Ejemplo simplificado:

  Handler handler = new Handler() { @Override public void handleMessage(Message msg) { AdRequest adRequest = new AdRequest.Builder().build(); adView.loadAd(adRequest); super.handleMessage(msg); } }; if (handler != null) { handler.sendEmptyMessageDelayed(0, 200); } 

He descubierto una solución.

En mi caso, estaba mostrando el anuncio desde dentro de un servicio que se ejecuta en un proceso personalizado. Por ejemplo:

  <service android:name="com.example.MyService" android:exported="false" android:process=":svc" /> 

En mi AndroidManifest.xml, a continuación, establecer el mismo atributo android: proceso para el declarado AdActivity, y el problema se fue.

  <activity android:name="com.google.android.gms.ads.AdActivity" android:process=":svc" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" /> 

En el caso de mi aplicación, no me interesa especialmente el proceso en el que se ejecuta la actividad del anuncio, por lo que esta solución es suficiente. Espero que esto sea de algún uso para otros.

He encontrado temporal semi-solución. Utilizo los consejos de thiagolr anteriores con solicitud de anuncio retrasada:

  Handler handler = new Handler() { @Override public void handleMessage(Message msg) { AdRequest adRequest = new AdRequest.Builder().build(); adView.loadAd(adRequest); super.handleMessage(msg); } }; if (handler != null) { handler.sendEmptyMessageDelayed(0, 200); } 

También quité métodos de OnResume y OnPause, así que no sé qué solución me ayuda, pero beforee esta solución que tenía 100-130 java.lang.NullPointerException en zo.a (SourceFile: 172) por día. Después de esta solución, tenía 6-10 NullPointerException por día. Si quieres puedes probar estas soluciones por separado para definir cuál de ellas ayuda.

Mis métodos eliminados en actividad:

 // @Override // public void onPause() { // adView.pause(); // super.onPause(); // } // // @Override // public void onResume() { // super.onResume(); // adView.resume(); // } 

De acuerdo con: https://groups.google.com/forum/#!topic/google-admob-ads-sdk/DkjtCx_Zvn8

Algunos han tenido éxito añadiendo android: theme = "@ android: style / Theme.Translucent" a la actividad android: name = "com.google.android.gms.ads.AdActivity" en el manifiesto.

Estoy lanzando una nueva versión con esa corrección ahora. Verá en un par de días si ayuda.

Mover a usar otro anuncio sdk. He intentado la mayor parte de lo mencionado y el error sigue siendo. Y personalmente odio la aplicación de estos hacks en código. Así que decidimos cambiar más bien utilizando google ad sdk con fallos y errores.

  • Problema de diálogo desconocido en los servicios de Google Play cuando intenta utilizar el ejemplo de Google Drive
  • Android Studio Biblioteca de Google Play-Services
  • Cómo encontrar la versión de Android de Google Play Services
  • No se puede resolver com.google.android.gcm.GCMBaseIntentService; Estudio de Android
  • Proyecto de API carece de ID de proyecto en Google Developers Console
  • La API de Google Maps para Android v2 lanza GooglePlayServicesNotAvailableException, fuera de fecha, SupportMapFragment.getMap () devuelve null
  • Uso del servicio LocationClient de Google Play Services en segundo plano
  • Gradle no puede encontrar la dependencia de google play
  • Subclase de SupportMapFragment resultados en un NullPointerException
  • Cómo obtener la dirección del usuario mediante la dirección api de google play servicios 4.3 en android?
  • Los últimos servicios de Google Play 9.6.80 provocan "FirebaseCrash: Error al inicializar el informe de fallos"
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.