I solved the problem. In case any one else in the future has the same problem heres the solution:
When i query the modem with AT command for signal strength it sent back 2 integer values.
Check the ril.cpp file, in the function responseRilSignalStrength, the implementation is for the new ril. The ril i used was the old one.
Therefore, the reference-ril reports signal strength as 2 integers. This is marked as deprecated in responseRilSignalStrength() in libril/ril.cpp of the version 2 sources, and this part has just been removed in the ics source. When I put it back in, the error disappeared.
I found this answer from https://groups.google.com/forum/?fromgroups=#!topic/android-x86/zEPIfsQAuYg