I found if remove first '\n' from the str,then run emacs will not hang.
May be it has nothing to do with font-lock, just str parsing ?

(let ((str "#define SLOGE(...)\n
((void)__android_log_buf_print(LOG_ID_SYSTEM, ANDROID_LOG_ERROR, LOG_TAG,\n
change to 
(let ((str "#define SLOGE(...) ((void)__android_log_buf_print(LOG_ID_SYSTEM, ANDROID_LOG_ERROR, LOG_TAG,\n