java - NullPointerException on getAction( ) or Intent -
i wanted utilize search view widget in action bar google places api , stumbled upon link tutorial shared in various posts on stack overflow, decided check out. have implemented existing code, getting nullpointerexception , hoping can me out bit, can debug issue. i've been browsing through various posts on stack overflow , articles via google...
logcat specifies caused lines 119 , 123.
mainactivity.java:
public class mainactivity extends fragmentactivity implements googleplayservicesclient.connectioncallbacks, googleplayservicesclient.onconnectionfailedlistener, locationlistener, onmaplongclicklistener, loadercallbacks<cursor> { //global constants private final static int connection_failure_resolution_request = 9000; // milliseconds per second private static final int milliseconds_per_second = 1000; // update frequency in seconds public static final int update_interval_in_seconds = 5; // update frequency in milliseconds private static final long update_interval = milliseconds_per_second * update_interval_in_seconds; // fastest update frequency, in seconds private static final int fastest_interval_in_seconds = 1; // fast frequency ceiling in milliseconds private static final long fastest_interval = milliseconds_per_second * fastest_interval_in_seconds; //global variables googlemap map; marker marker; locationrequest requestlocation; locationclient locationclient; locationmanager locationmanager; boolean updatesrequested; geofence geofence; vibrator vibstatus; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); // create locationrequest object requestlocation = locationrequest.create(); // use high accuracy requestlocation.setpriority( locationrequest.priority_high_accuracy); // set update interval 5 seconds requestlocation.setinterval(update_interval); // set fastest update interval 1 second requestlocation.setfastestinterval(fastest_interval); supportmapfragment fragment = (supportmapfragment) getsupportfragmentmanager().findfragmentbyid(r.id.map); map = fragment.getmap(); //enables "my location" button on map fragment map.getuisettings().setmylocationbuttonenabled(true); //create new location client, using enclosing class handle callbacks. locationclient = new locationclient(this, this, this); // start updates turned off updatesrequested = false; // map.setonmaplongclicklistener(this); // adview resource , load request. adview adview = (adview)this.findviewbyid(r.id.adview); adrequest adrequest = new adrequest.builder().build(); adview.loadad(adrequest); handleintent(getintent()); //this line 119 in code } private void handleintent(intent intent){ if(intent.getaction().equals(intent.action_search)){ //this line 123 in code dosearch(intent.getstringextra(searchmanager.query)); }else if(intent.getaction().equals(intent.action_view)){ getplace(intent.getstringextra(searchmanager.extra_data_key)); } } @override protected void onnewintent(intent intent) { super.onnewintent(intent); setintent(intent); handleintent(intent); } ... }
androidmanifest.xml:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com...." //removed while posting on forum android:versioncode="1" android:versionname="1.0" > <uses-sdk android:minsdkversion="10" android:targetsdkversion="19" /> <!-- protect map component of application using application signature --> <permission android:name="com.....permission.maps_receive" //removed while posting on forum android:protectionlevel="signature" /> <!-- allows receive map --> <uses-permission android:name="com.....permission.maps_receive" /> //removed while posting on forum <uses-permission android:name="android.permission.internet" /> <uses-permission android:name="android.permission.access_network_state" /> <uses-permission android:name="android.permission.write_external_storage" /> <uses-permission android:name="com.google.android.providers.gsf.permission.read_gservices" /> <uses-permission android:name="android.permission.access_fine_location" /> <uses-permission android:name="android.permission.vibrate" /> <uses-feature android:glesversion="0x00020000" android:required="true" /> <application android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/theme.appcompat.light.darkactionbar" > <activity android:name="com.....splashactivity" //removed while posting on forum android:label="@string/app_name" android:screenorientation="portrait" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <activity android:name="com.....mainactivity" //removed while posting on forum android:label="@string/app_name" android:launchmode="singletop" android:screenorientation="portrait" > <intent-filter> <action android:name="android.intent.action.search" /> </intent-filter> <!-- points searchable activity --> <meta-data android:name="android.app.default_searchable" android:value="com.....mainactivity" /> //removed while posting on forum <!-- points searchable meta data --> <meta-data android:name="android.app.searchable" android:resource="@xml/searchable"/> </activity> <activity android:name="com.....preferencesactivity" //removed while posting on forum android:label="@string/title_activity_settings" android:parentactivityname="com.....mainactivity" //removed while posting on forum android:screenorientation="portrait" > <meta-data android:name="android.support.parent_activity" android:value="com.....mainactivity" /> //removed while posting on forum </activity> <activity android:name="com.....alarmactivity" //removed while posting on forum android:label="@string/title_activity_alarm" > </activity> <activity android:name="com.google.android.gms.ads.adactivity" android:configchanges="keyboard|keyboardhidden|orientation|screenlayout|uimode|screensize|smallestscreensize" /> <activity android:name="com.....placejsonparser" //removed while posting on forum android:label="@string/title_activity_place_jsonparser" > </activity> <activity android:name="com.....placedetailsjsonparser" //removed while posting on forum android:label="@string/title_activity_place_details_jsonparser" > </activity> <activity android:name="com.....placeprovider" //removed while posting on forum android:label="@string/title_activity_place_provider" > </activity> <provider android:name=".placeprovider" android:authorities="com.....placeprovider" //removed while posting on forum android:exported="false" /> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <meta-data android:name="com.google.android.maps.v2.api_key" android:value="my-key-here" /> //removed while posting on forum </application> </manifest>
you starting mainactivity splashactivity? when happens in search view? looks it. when call startactivity(intent), need make sure have added action intent:
intent mainactivityintent = new intent(context); mainactivityintent.setaction(intent.action_search); startactivity(mainactivityintent);
if you, or whatever calls mainactivity using intent, doesn't set action on intent, going null pointer when try getaction() on calling intent in activity.
Comments
Post a Comment