Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Failed to initialize display event receiver

Tags:

android

crash

I have made an app which periodically starts a service that retrieves information from a server.

I use an AlarmManager to schedule the service.
This works fine and the app receives the alarm every 30 min.
The app works fine, but after a full night of inactivity -and I start the app, it crashes with the error: 'Failed to initialize display event receiver'.

Else this works perfectly.

I searched this problem for a long time and found others with the same problem, but no solution, yet.

Process: it.unipi.iet.portolan.traceroute, PID: 13092 java.lang.RuntimeException: Failed to initialize display event receiver.  status=-2147483648 at android.view.DisplayEventReceiver.nativeInit(Native Method) at android.view.DisplayEventReceiver.<init>(DisplayEventReceiver.java:61) at android.view.Choreographer$FrameDisplayEventReceiver.<init>(Choreographer.java:695) at android.view.Choreographer.<init>(Choreographer.java:169) at android.view.Choreographer.<init>(Choreographer.java:72) at android.view.Choreographer$1.initialValue(Choreographer.java:98) at android.view.Choreographer$1.initialValue(Choreographer.java:91) at java.lang.ThreadLocal$Values.getAfterMiss(ThreadLocal.java:430) at java.lang.ThreadLocal.get(ThreadLocal.java:65) at android.view.Choreographer.getInstance(Choreographer.java:194) at android.view.ViewRootImpl.<init>(ViewRootImpl.java:370) at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:248) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2871) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2271) at android.app.ActivityThread.access$800(ActivityThread.java:145) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1206) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5141) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:611) at dalvik.system.NativeStart.main(Native Method) 
like image 276
Adri Avatar asked Aug 02 '14 09:08

Adri


1 Answers

Just for some info

Just for some info, I can't understand why, The message throws from :

frameworks/base/core/jni/android_view_DisplayEventReceiver.cpp:4239:        message.appendFormat("Failed to initialize display event receiver.  status=%d", status); 

or maybe this

frameworks/base/libs/androidfw/DisplayEventDispatcher.cpp:1427:        ALOGW("Failed to initialize display event receiver, status=%d", result); 

the status -2147483648 = 0x800000000

it return from the DisplayEventReceiver:

  /* initCheck returns the state of DisplayEventReceiver after construction.*/  status_t initCheck() const; 

and look at the DisplayEventReceiver.cpp

status_t DisplayEventReceiver::initCheck() const { if (mDataChannel != NULL)     return NO_ERROR; return NO_INIT; } 

look like the mDataChannel is NULL,

the mDataChannel initialized in the constructor

DisplayEventReceiver::DisplayEventReceiver() {     sp<ISurfaceComposer> sf(ComposerService::getComposerService());     if (sf != NULL) {         mEventConnection = sf->createDisplayEventConnection();         if (mEventConnection != NULL) {             mDataChannel = mEventConnection->getDataChannel();         }     } } 

so sf SurfaceComposer is NULL or the sf-> createDisplayEventConnection return NULL.

and in the file ./system/core/include/utils/Errors.h

... NO_ERROR            =0 UNKNOWN_ERROR       = (-2147483647-1), // INT32_MIN value  NO_MEMORY           = -ENOMEM, INVALID_OPERATION   = -ENOSYS, BAD_VALUE           = -EINVAL, BAD_TYPE            = (UNKNOWN_ERROR + 1), NO_INIT             = -ENODEV, ... 

seems the status must NO_INIT...

like image 110
Yu Jiaao Avatar answered Sep 19 '22 13:09

Yu Jiaao