Notice (2018-05-24): bugzilla.xamarin.com is now in
Please join us on
Visual Studio Developer Community and in the
Mono organizations on
GitHub to continue tracking issues. Bugzilla will remain
available for reference in read-only mode. We will continue to work
on open Bugzilla bugs, copy them to the new locations
as needed for follow-up, and add the new items under Related
Our sincere thanks to everyone who has contributed on this bug
tracker over the years. Thanks also for your understanding as we
make these adjustments and improvements for the future.
Please create a new report on
Developer Community or GitHub with
your current version information, steps to reproduce, and relevant error
messages or log files if you are hitting an issue that looks similar to
this resolved bug and you do not yet see a matching new report.
Created attachment 4538 [details]
In my solution I am calling some Google web services that returns my reverse geolocation (JSON) as well as a static map (byte ). This worked 100% prior to the upgrade to the Mono Framework 3.2.0 in both iOS and Android. However, now when running the same code on the newer version the reverse geolocation does not return the correct results and the map data is definitely wrong (mostly shows a blue image). I suspect that the request made is not correct? The coordinates returned from the geolocation call are correct and when manually pasting the URL in a browser the results are perfect.
I have tried using System.Net.Http to replace WebClient only to have the same output. The code works perfectly in the simulator. The exact code does not work on the Android platform either.
This is a pretty critical problem as now my apps do not work with the new versions of Xamarin.iOS. No code has changed on my side to cause these issues.
Please see the attached iPhone example project and screenshot. I am going to log this issue again for Android with the relevant sample code.
Marek, can you have a look at this?
This works as expected to me, is it possible to provide an example of this not working as a screenshot so we can confirm that this is not working for you and also provide your Xamarin information from Xamarin -> Xamarin Studio -> About Xamarin Studio -> Show Details -> Copy Information
=== Xamarin Studio ===
Version 4.0.10 (build 7)
Installation UUID: ad159810-1470-4877-b190-a24e54e7a7eb
Mono 3.2.0 ((no/7c7fcc7)
Package version: 302000000
=== Apple Developer Tools ===
Xcode 4.6.2 (2067.2)
=== Xamarin.Mac ===
Xamarin.Mac: Not Installed
=== Xamarin.iOS ===
Version: 188.8.131.52 (Business Edition)
Build date: 2013-30-07 08:24:03-0400
=== Xamarin.Android ===
=== Build Information ===
Release ID: 400100007
Git revision: f324e2154ee86ae1b6b8483392eddbf418e6381b
Build date: 2013-07-20 06:23:58+0000
Xamarin addins: fe4f180e2386eafc00087ef68c3a580cff4a2592
=== Operating System ===
Mac OS X 10.8.4
Darwin Dylans-Mac.local 12.4.0 Darwin Kernel Version 12.4.0
Wed May 1 17:57:12 PDT 2013
Screenshot and sample solution provided in attachment.
I noticed you added a screenshot already, I'm not seeing this behaviour, is it possible to use something like Charles to compare the web requests being made, are you sure the results from your location service are correct?
So looking into this further, it seems that when you're on a Afrikaans Regional setting, a URI constructor will convert . dot values to , commas, so a URL like:
would end up being
Would you mind reviewing this change?
Potentially related to this:
*** Bug 13756 has been marked as a duplicate of this bug. ***
It's actually issue in your core. Code like
Uri address = new Uri("http://maps.googleapis.com/maps/api/geocode/json?latlng=" + latitude + "," + longitude + "&sensor=true");
will use current culture to construct the url, it does something like latitute.ToString () which is most likely not what you want. One possible fix is to do latitude.ToString (CultureInfo.InvariantCulture) or write correct custom formatting according to what Google API expects.
We fixed many of our culture info tables which is probably the reason why upgrade exposed issue in your code.