- Forum-Beiträge: 180
27.01.2015, 09:54:55 via Website
27.01.2015 09:54:55 via Website
Hei Leute ich werde aus diesem Fehler einfach nicht schlau woran das liegt
Fällt dazu wem was ein?
Hier ist die Fehlermeldung:
Java.Lang.IllegalArgumentException: provider doesn't exist:
at at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () <IL 0x00011, 0x00068>
at at Android.Runtime.JNIEnv.CallVoidMethod (intptr,intptr,Android.Runtime.JValue[]) <IL 0x00069, 0x00293>
at at Android.Locations.LocationManager.RequestLocationUpdates (string,long,single,Android.Locations.ILocationListener) <IL 0x000a4, 0x0047b>
at HKEDV_GPS.MapFragment.OnResume () [0x00008] in t:\Lukas Reiner\Programmierung\Projekte\HKEDV_GPS\HKEDV_GPS\Fragmente\MapFragment.cs:61
at at Android.App.Fragment.n_OnResume (intptr,intptr) <IL 0x0000a, 0x0009f>
at at (wrapper dynamic-method) object.f398f316-67de-4bf6-83fb-e5934f52c5cd (intptr,intptr) <IL 0x00011, 0x0003b>
at --- End of managed exception stack trace ---
at java.lang.IllegalArgumentException: provider doesn't exist:
at at android.os.Parcel.readException(Parcel.java:1544)
at at android.os.Parcel.readException(Parcel.java:1493)
at at android.location.ILocationManager$Stub$Proxy.requestLocationUpdates(ILocationManager.java:584)
at at android.location.LocationManager.requestLocationUpdates(LocationManager.java:867)
at at android.location.LocationManager.requestLocationUpdates(LocationManager.java:459)
at at hkedv_gps.MapFragment.n_onResume(Native Method)
at at hkedv_gps.MapFragment.onResume(MapFragment.java:43)
at at android.app.Fragment.performResume(Fragment.java:2096)
at at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:928)
at at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
at at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1049)
at at android.app.FragmentManagerImpl.dispatchResume(FragmentManager.java:1879)
at at android.app.Activity.performResume(Activity.java:6029)
at at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2940)
at at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2982)
at at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2365)
at at android.app.ActivityThread.access$800(ActivityThread.java:144)
at at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
at at android.os.Handler.dispatchMessage(Handler.java:102)
at at android.os.Looper.loop(Looper.java:135)
at at android.app.ActivityThread.main(ActivityThread.java:5221)
at at java.lang.reflect.Method.invoke(Native Method)
at at java.lang.reflect.Method.invoke(Method.java:372)
at at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Und hier der Code:
public class MapFragment : Fragment, ILocationListener
{
Location currentLocation;
LocationManager locationManager;
string locationProvider;
string locationText;
string addressText;
// Fragment wird definiert
public static Fragment NewInstance(int position)
{
Fragment fragment = new MapFragment();
Bundle args = new Bundle();
return fragment;
}
// Layout wird angegeben
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
Toast.MakeText (Activity,"Position gefunden!", ToastLength.Long);
//Kriterien für den Provider
locationManager = (LocationManager)Activity.GetSystemService(Context.LocationService);
Criteria criteriaForLocationService = new Criteria{
Accuracy = Accuracy.Coarse,
PowerRequirement = Power.Medium
};
IList<string> acceptableLocationProviders = locationManager.GetProviders(criteriaForLocationService, true);
if (acceptableLocationProviders.Any ()) {
locationProvider = acceptableLocationProviders.First ();
} else {
locationProvider = String.Empty;
};
return inflater.Inflate(Resource.Layout.map, container, false);
}
//Wenn das Layout geladen ist
public override void OnResume()
{
base.OnResume();
locationManager.RequestLocationUpdates(locationProvider, 0, 0, this);
}
//Wenn im Hintergrund
public override void OnPause()
{
base.OnPause();
locationManager.RemoveUpdates(this);
}
//Wird aufgerufen wennn Position verändert wurde
public void OnLocationChanged(Location location)
{
try
{
currentLocation = location;
if (currentLocation == null)
locationText = "";
else
{
locationText = String.Format("{0},{1}", currentLocation.Latitude, currentLocation.Longitude);
Geocoder geocoder = new Geocoder(Activity);
IList<Address> addressList = geocoder.GetFromLocation(currentLocation.Latitude, currentLocation.Longitude, 10);
Address address = addressList.FirstOrDefault();
if (address != null)
{
StringBuilder deviceAddress = new StringBuilder();
for (int i = 0; i < address.MaxAddressLineIndex; i++)
deviceAddress.Append(address.GetAddressLine(i))
.AppendLine(",");
addressText = deviceAddress.ToString();
}
else
addressText = "";
}
}
catch
{
addressText = "";
}
}
public void OnProviderDisabled(String provider)
{
}
public void OnProviderEnabled(String provider)
{
}
public void OnStatusChanged(String provider, Availability status, Bundle extras)
{
}
}
}
MFG Lukas R.
Programmieren ist nicht nur eine Wissenschaft, sondern auch ein Lifestyle!
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.