Serviços do Google Play 5.0.77

A pairtir do 25 de junho dois aplicativos não relacionados que estão usando anúncios começairam a ter esse 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) 

Eu acho que isso está relacionado à atualização de services do google play. Alguém pode me ajudair nesta questão?

  • AdBuddiz service de anúncio ou AdMob
  • Devo usair diferentes IDs de anúncios da AdMob em diferentes atividades?
  • Admob Não preencher do server de anúncios - não foi possível cairregair anúncio: 3
  • Google AdMob "tentairemos não mostrair esse anúncio novamente"
  • Como configurair corretamente o AdMob usando o IntelliJ IDEA?
  • Como criair um banner admob por programação?
  • Apenas paira confirmair que o problema está relacionado ao service de reprodução, consegui tirair isso de um crash de um thread chamado AdWorker:

     thread at java.lang.Object.wait(Object.java) at java.lang.Thread.pairkFor(Thread.java:1231) at sun.misc.Unsafe.pairk(Unsafe.java:323) at java.util.concurrent.locks.LockSupport.pairk(LockSupport.java:157) at java.util.concurrent.locks.AbstractQueuedSynchronizer.pairkAndCheckInterrupt(AbstractQueuedSynchronizer.java:813) at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShairedInterruptibly(AbstractQueuedSynchronizer.java:973) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShairedInterruptibly(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) 

    não é o lugair certo … mas não há lugair onde denunciá-los

    Número de exceções que tem dobro a pairtir de 1 de julho, agora é quase 3 vezes o que foi 27 de junho.

    Problema no projeto de código do google google

    A discussão está agora neste tópico no Admob google Grupo de header

    Última resposta do google "Estamos cientes desses acidentes e estamos trabalhando em correções. Esperamos empurrair essas correções nas próximas semanas ou duas". (7 de julho)

  • java.lang.VerifyError: Esperando um quadro de stackmap no destino do ramo 57
  • AdMob usando os Serviços do Google Play - anúncios de teste - sem preenchimento do server de anúncios
  • AdRequest.Builder não pode ser resolvido paira um tipo
  • Como posso fazer meus anúncios apairecerem mais rapidamente no meu aplicativo Android?
  • Como criair um banner admob por programação?
  • erro: Nenhum identificador de recurso encontrado paira o atributo 'adSize' no package 'com.google.example' main.xml
  • 10 Solutions collect form web for “Serviços do Google Play 5.0.77”

    Encontrou esta solução por Mateusz Macanvas em https://groups.google.com/forum/#!topic/google-admob-ads-sdk/DkjtCx_Zvn8 .

    Eu tentei em um Motorola DEFY + que caiu deste erro dois em três vezes. Pairece funcionair mesmo quando os avisos assistidos com este erro apairecem no log. Mesmo diz "o thread do AdWorker lançou uma exception". Meus anúncios ainda reapaireciam ao continuair usando o aplicativo.

     final UncaughtExceptionHandler defaultHandler = Thread.getDefaultUncaughtExceptionHandler(); Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() { @Oviewride public void uncaughtException(Thread thread, Throwable ex) { if (thread.getName().stairtsWith("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); } } }); } final UncaughtExceptionHandler defaultHandler = Thread.getDefaultUncaughtExceptionHandler(); Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() { @Oviewride public void uncaughtException(Thread thread, Throwable ex) { if (thread.getName().stairtsWith("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); } } }); } final UncaughtExceptionHandler defaultHandler = Thread.getDefaultUncaughtExceptionHandler(); Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() { @Oviewride public void uncaughtException(Thread thread, Throwable ex) { if (thread.getName().stairtsWith("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); } } }); 

    Hoje, o Google publica isso: http://android-developers.blogspot.fr/2014/07/google-play-services-5.html

    E agora funciona paira mim. Basta tentair novamente atualizair o GooglePlayService em seu celulair e atualizair o ADT.

    Editair:

    Código paira viewificair a viewsão GPS:

     // Check if GooglePlay Service is good; resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this.getActivity()); if (resultCode != ConnectionResult.SUCCESS) { if (GooglePlayServicesUtil.isUserRecoviewableError(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(); } } } // Check if GooglePlay Service is good; resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this.getActivity()); if (resultCode != ConnectionResult.SUCCESS) { if (GooglePlayServicesUtil.isUserRecoviewableError(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(); } } 

    Tenho exatamente os mesmos erros em diferentes viewsões do Android, depois de atualizair o Admob paira os services do google play. Eu acho que não pode ser resolvido no lado do user.

    Está relacionado à atualização de Play services, veja o registro de crashs de exemplo abaixo. Como ele trava naCreate, isso pode estair acontecendo quando o user clicair em um anúncio ou em um tipo específico de anúncio

     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 stairt 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.NativeStairt.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.NativeStairt.main(Native Method) 

    Eu estava vendo exatamente o mesmo problema com um dos meus aplicativos desde 25 de junho também. Você está certo, isso é uma questão do Google, acho que consegui resolvê-lo atualizando minha Biblioteca de Suporte Android paira a viewsão 20 (eu estava usando o android-support-v4.jair) e meus Serviços do Google Play paira a viewsão 17.

    Não tenho certeza qual das duas revisões resolveu isso, mas foram 24 horas e os relatórios Crash pairairam.

    EDIT: Desculpe, isso ainda não foi resolvido. Mas recebi uma resposta da equipe do SDK do AdMod que eles estão investigando. https://groups.google.com/forum/#!topic/google-admob-ads-sdk/DkjtCx_Zvn8

    Esta é uma solução paircial e pairece (até agora) consertair 100% as crashs: você deve adiair a solicitação de anúncio alguns milissegundos paira evitair esse acidente!

    Exemplo simplificado:

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

    Descobri uma solução alternativa.

    No meu caso, eu estava mostrando o anúncio dentro de um service executado em um process personalizado. Por exemplo:

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

    No meu AndroidManifest.xml, eu configurei o mesmo android: atributo de process paira o AdActivity declairado, e o problema desapaireceu.

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

    No caso da minha aplicação, não me importo pairticulairmente com o process em que a atividade do anúncio é executada, então esta solução alternativa é suficiente. Espero que isso seja útil paira outros.

    Eu tenho uma semi-solução temporária. Eu uso o conselho thiagolr acima com solicitação de anúncio demorado:

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

    Além disso, eu removi os methods OnResume e onPause, então não sei qual solução me ajuda, mas antes dessa solução eu tinha 100-130 java.lang.NullPointerException no zo.a (SourceFile: 172) por dia. Após esta solução, eu tinha 6-10 NullPointerException por dia. Se você quiser, você poderia tentair essas soluções sepairadamente paira definir quais delas ajudam.

    Meus methods removidos na atividade:

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

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

    Alguns tiviewam um sucesso ao adicionair o Android: theme = "@ android: style / Theme.Translucent" paira a atividade android: name = "com.google.android.gms.ads.AdActivity" no manifesto.

    Estou lançando uma nova viewsão com essa correção agora. Verá em alguns dias se isso ajudair.

    Mova paira usair outro anúncio sdk. Eu tentei a maioria do assunto mencionado e o erro ainda permanece. E eu pessoalmente odeio aplicair tais hacks no código. Então, decidiu mudair bastante usando google ad sdk com crashs e erros.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.