java - cannot be cast to com.google.android.gms.location.LocationListener exception in android -
i facing exception in application, exception related com.google.android.gms.location.locationlistner in android, please me in regards
my mainactivity.java file:
package com.ideabiz.fusedlocationprovider; import android.content.pm.packagemanager; import android.location.location; import android.location.locationlistener; import android.support.annotation.nonnull; import android.support.annotation.nullable; import android.support.v4.app.activitycompat; import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.widget.textview; import com.google.android.gms.common.connectionresult; import com.google.android.gms.common.api.googleapiclient; import com.google.android.gms.location.locationrequest; import com.google.android.gms.location.locationservices; public class mainactivity extends appcompatactivity implements googleapiclient.connectioncallbacks, googleapiclient.onconnectionfailedlistener, locationlistener { textview txtoutputlat, txtoutputlon; location mlastlocation; private googleapiclient mgoogleapiclient; private locationrequest mlocationrequest; string lat, lon; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); txtoutputlat = (textview) findviewbyid(r.id.textview); txtoutputlon = (textview) findviewbyid(r.id.textview2); buildgoogleapiclient(); } @override public void onconnected(bundle bundle) { mlocationrequest = locationrequest.create(); mlocationrequest.setpriority(locationrequest.priority_high_accuracy); mlocationrequest.setinterval(100); // update location every second locationservices.fusedlocationapi.requestlocationupdates(mgoogleapiclient, mlocationrequest, (com.google.android.gms.location.locationlistener) this); if (activitycompat.checkselfpermission(this, android.manifest.permission.access_fine_location) != packagemanager.permission_granted && activitycompat.checkselfpermission(this, android.manifest.permission.access_coarse_location) != packagemanager.permission_granted) { // todo: consider calling // activitycompat#requestpermissions // here request missing permissions, , overriding // public void onrequestpermissionsresult(int requestcode, string[] permissions, // int[] grantresults) // handle case user grants permission. see documentation // activitycompat#requestpermissions more details. return; } mlastlocation = locationservices.fusedlocationapi.getlastlocation( mgoogleapiclient); if (mlastlocation != null) { lat = string.valueof(mlastlocation.getlatitude()); lon = string.valueof(mlastlocation.getlongitude()); } updateui(); } @override public void onconnectionsuspended(int i) { } @override public void onlocationchanged(location location) { lat = string.valueof(location.getlatitude()); lon = string.valueof(location.getlongitude()); updateui(); } @override public void onstatuschanged(string s, int i, bundle bundle) { } @override public void onproviderenabled(string s) { } @override public void onproviderdisabled(string s) { } @override public void onconnectionfailed(connectionresult connectionresult) { buildgoogleapiclient(); } synchronized void buildgoogleapiclient() { mgoogleapiclient = new googleapiclient.builder(this) .addconnectioncallbacks(this) .addonconnectionfailedlistener(this) .addapi(locationservices.api) .build(); } @override protected void onstart() { super.onstart(); mgoogleapiclient.connect(); } @override protected void ondestroy() { super.ondestroy(); mgoogleapiclient.disconnect(); } void updateui() { txtoutputlat.settext(lat); txtoutputlon.settext(lon); } }
my logcat file:
e/androidruntime: fatal exception: main process: com.ideabiz.fusedlocationprovider, pid: 18114 java.lang.classcastexception: com.ideabiz.fusedlocationprovider.mainactivity cannot cast com.google.android.gms.location.locationlistener @ com.ideabiz.fusedlocationprovider.mainactivity.onconnected(mainactivity.java:52)
my manifest.xml file:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.ideabiz.fusedlocationprovider"> <uses-permission android:name="android.permission.access_fine_location" /> <application android:allowbackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsrtl="true" android:theme="@style/apptheme"> <activity android:name=".mainactivity"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> </application> </manifest>
if take on logcat, error stated have imported wrong locationlistener. check on imported library @ top part of class, supposed com.google.android.gms.location.locationlistener
not android.location.locationlistener
.
Comments
Post a Comment