Ich habe ein sehr seltsames Problem mit Xamarin.Forms.Maps. Ich versuche, eine Seite mit einer Karte zu implementieren, die den aktuellen Standort abruft und beim Start der Seite in die Region wechselt.Google Karte Geocoder und MoveToRegion funktioniert nicht
Alles funktioniert gut in IOS, aber in Android, Geocoder & MoveToRegion funktionieren überhaupt nicht. Nur die Karte wird angezeigt.
Ich erhalte den Standort korrekt (Long & Lat) in den Emulatoren & Gerät. MoveToRegion nichts tun & GetAddressesForPositionAsync retrive nichts.
Hier sind die Informationen in meinem Manifest:
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="mykey" />
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
Hier den Code:
map.MoveToRegion(MapSpan.FromCenterAndRadius(
new Xamarin.Forms.Maps.Position(coordinates.Lat.Value, coordinates.Lng.Value), Distance.FromMiles(1))
);
var possibleAddresses = await locator.GetAddressesForPositionAsync(position);
Ich habe versucht, in Genymotion, Emulator von AVD. Ich bin nicht in der Lage in Echt Gerät zu testen (Der Einsatz in meinem Tablet scheitern)
Edit:
global::Xamarin.Forms.Forms.Init(this, bundle);
War richtig eingestellt, aber immer noch nicht funktioniert.
Ich zwinge Geocoder Nutzung und es diesen Fehler ausgelöst:
[MonoDroid] UNHANDLED EXCEPTION:
[MonoDroid] Java.IO.IOException: grpc failed
[MonoDroid] at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() [0x0000c] in <896ad1d315ca4ba7b117efb8dacaedcf>:0
[MonoDroid] at Java.Interop.JniEnvironment+InstanceMethods.CallObjectMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x00069] in <6cd960837cc24c26bab2a0a29b597627>:0
[MonoDroid] at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeAbstractObjectMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x00014] in <6cd960837cc24c26bab2a0a29b597627>:0
[MonoDroid] at Android.Locations.Geocoder.GetFromLocationName (System.String locationName, System.Int32 maxResults) [0x0003c] in <d278c06ad5684d6882c743a94a93ebc2>:0
[MonoDroid] at Android.Locations.Geocoder+<>c__DisplayClass17_0.<GetFromLocationNameAsync>b__0() [0x00000] in <d278c06ad5684d6882c743a94a93ebc2>:0
[MonoDroid] at System.Threading.Tasks.Task`1[TResult].InnerInvoke() [0x0000f] in <896ad1d315ca4ba7b117efb8dacaedcf>:0
[MonoDroid] at System.Threading.Tasks.Task.Execute() [0x00010] in <896ad1d315ca4ba7b117efb8dacaedcf>:0
[MonoDroid] --- End of stack trace from previous location where exception was thrown ---
[MonoDroid] at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() [0x0000c] in <896ad1d315ca4ba7b117efb8dacaedcf>:0
[MonoDroid] at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <896ad1d315ca4ba7b117efb8dacaedcf>:0
[MonoDroid] at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <896ad1d315ca4ba7b117efb8dacaedcf>:0
[MonoDroid] at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <896ad1d315ca4ba7b117efb8dacaedcf>:0
[MonoDroid] at System.Runtime.CompilerServices.TaskAwaiter`1[TResult].GetResult() [0x00000] in <896ad1d315ca4ba7b117efb8dacaedcf>:0
[MonoDroid] at Xamarin.Forms.Maps.Android.GeocoderBackend+<GetPositionsForAddressAsync>d__1.MoveNext() [0x0006b] in <39c694c022be4f7b8a39897d372b2d00>:0
[MonoDroid] --- End of stack trace from previous location where exception was thrown ---
[MonoDroid] at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() [0x0000c] in <896ad1d315ca4ba7b117efb8dacaedcf>:0
[MonoDroid] at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <896ad1d315ca4ba7b117efb8dacaedcf>:0
[MonoDroid] at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <896ad1d315ca4ba7b117efb8dacaedcf>:0
[MonoDroid] at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <896ad1d315ca4ba7b117efb8dacaedcf>:0
[MonoDroid] at System.Runtime.CompilerServices.TaskAwaiter`1[TResult].GetResult() [0x00000] in <896ad1d315ca4ba7b117efb8dacaedcf>:0
[MonoDroid] at Picaplant.Views.GeolocationPage+<HandleAdressCompleted>d__8.MoveNext() [0x00047] in /Users/OrcusZ/Documents/AutoEntrepreneur/Picaplant/Source/Picaplant/Views/GeolocationPage.xaml.cs:158
[MonoDroid] --- End of stack trace from previous location where exception was thrown ---
[MonoDroid] at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() [0x0000c] in <896ad1d315ca4ba7b117efb8dacaedcf>:0
[MonoDroid] at System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.<ThrowAsync>b__6_0 (System.Object state) [0x00000] in <896ad1d315ca4ba7b117efb8dacaedcf>:0
[MonoDroid] at Android.App.SyncContext+<>c__DisplayClass2_0.<Post>b__0() [0x00000] in <d278c06ad5684d6882c743a94a93ebc2>:0
[MonoDroid] at Java.Lang.Thread+RunnableImplementor.Run() [0x00008] in <d278c06ad5684d6882c743a94a93ebc2>:0
[MonoDroid] at Java.Lang.IRunnableInvoker.n_Run (System.IntPtr jnienv, System.IntPtr native__this) [0x00008] in <d278c06ad5684d6882c743a94a93ebc2>:0
[MonoDroid] at (wrapper dynamic-method) System.Object:6621ff63-14b8-4291-a222-45bff630bddc (intptr,intptr)
[MonoDroid] --- End of managed Java.IO.IOException stack trace ---
[MonoDroid] java.io.IOException: grpc failed
[MonoDroid] at android.location.Geocoder.getFromLocationName(Geocoder.java:178)
[MonoDroid]
EDIT 2:
gleiche Fehler mit Xamarin Formular mit Karten Probe Arbeits
Jede Idee?
'mykey' bedeutet, dass Sie den Schlüssel hinzufügen? Und ich denke, wir müssten wahrscheinlich einen Code sehen, der Ihnen hilft, das Problem zu lokalisieren. –
Ja, ich verberge den wahren Schlüssel mit dem mykey, um ihn nicht anzuzeigen. Die Karte wird korrekt angezeigt, ich kann damit interagieren. – OrcusZ
Versuchen Sie, auf einem echten Gerät zu installieren, wenn es irgendein Problem gibt, zögern Sie nicht zu fragen. –