2. B = the version specified in res/values/version.xml of the library project you're referencing
<integer name="google_play_services_version">4030500</integer>
3. C = the version of Google Play services installed on the device.
(Not sure about this)
One more observation:
The logs show one error as:
E/GooglePlayServicesUtil(8359): The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.
As you said, I also hardcoded the meta-tag to 4030500. But strangely, the logcat shows same error. And the code fetches 4033500.
I can confirm that I have not defined "google_play_services_version" anywhere in project. (Also did a string search in the whole workspace)
Update:
The code now fetches new version value as 4034500. It seems that GPS app on my device is updated. But the error log stays the same (version updated):
W/System.err(4900): java.lang.IllegalStateException: The meta-data tag in your app's AndroidManifest.xml does not have the right value. Expected 4030500 but found 4034500. You must have the following declaration within the <application> element: <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
From the above log one thing is sure that version is getting fetched from the device and not from the code.
I will again emphasize on the fact that, this same code is working fine on Android Emulators (Running Google API).
--
Thanks,
UD