Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Null Pointer exception in using support library share action provider

Below is the code of my Activity . In this I am using the support library appcompat

   import android.content.Intent;
   import android.os.Bundle;
   import  android.support.v4.view.MenuItemCompat;
   import android.support.v7.app.ActionBarActivity;
   import android.support.v7.widget.ShareActionProvider;
   import android.view.Menu;
   import android.view.MenuItem;

  public class MainActivity extends ActionBarActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    MenuItem item = (MenuItem) menu.findItem(R.id.share_options);
    ShareActionProvider shareAction = (ShareActionProvider) MenuItemCompat
            .getActionProvider(item);
    Intent shareIntent = new Intent(Intent.ACTION_SEND)
            .setAction(Intent.ACTION_SEND)
            .putExtra(Intent.EXTRA_TEXT, "MobiTexter")
            .setType("text/plain");
    shareAction.setShareIntent(shareIntent);
    return super.onCreateOptionsMenu(menu);
}

}

The following is my XML file for the menu options that is an ShareActionProvider Widget

     <menu xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:mobitexter="http://schemas.android.com/apk/res-auto" >

<item
    android:id="@+id/share_options"
    android:actionProviderClass="android.support.v7.widget.ShareActionProvider"
    android:orderInCategory="100"
    mobitexter:showAsAction="never"
    mobitexter:title="@string/share_options"/>

  </menu>

In this i am getting an NullPointerException . Below is my log cat output.

          10-02 12:49:00.813: E/AndroidRuntime(9227): FATAL EXCEPTION: main
          10-02 12:49:00.813: E/AndroidRuntime(9227): java.lang.NullPointerException
          10-02 12:49:00.813: E/AndroidRuntime(9227):   at net.mobitexter.easyshare.MainActivity.onCreateOptionsMenu(MainActivity.java:31)
          10-02 12:49:00.813: E/AndroidRuntime(9227):   at android.app.Activity.onCreatePanelMenu(Activity.java:2444)
          10-02 12:49:00.813: E/AndroidRuntime(9227):   at android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:224)
          10-02 12:49:00.813: E/AndroidRuntime(9227):   at android.support.v7.app.ActionBarActivity.superOnCreatePanelMenu(ActionBarActivity.java:224)
          10-02 12:49:00.813: E/AndroidRuntime(9227):   at android.support.v7.app.ActionBarActivityDelegateICS.onCreatePanelMenu(ActionBarActivityDelegateICS.java:141)
          10-02 12:49:00.813: E/AndroidRuntime(9227):   at android.support.v7.app.ActionBarActivity.onCreatePanelMenu(ActionBarActivity.java:199)
          10-02 12:49:00.813: E/AndroidRuntime(9227):   at  android.support.v7.app.ActionBarActivityDelegateICS$WindowCallbackWrapper.onCreatePanelMenu(ActionBarActivityDelegateICS.java:280)
          10-02 12:49:00.813: E/AndroidRuntime(9227):   at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:392)
          10-02 12:49:00.813: E/AndroidRuntime(9227):   at com.android.internal.policy.impl.PhoneWindow.invalidatePanelMenu(PhoneWindow.java:743)
          10-02 12:49:00.813: E/AndroidRuntime(9227):   at com.android.internal.policy.impl.PhoneWindow$1.run(PhoneWindow.java:2838)
          10-02 12:49:00.813: E/AndroidRuntime(9227):   at android.os.Handler.handleCallback(Handler.java:605)
          10-02 12:49:00.813: E/AndroidRuntime(9227):   at android.os.Handler.dispatchMessage(Handler.java:92)
          10-02 12:49:00.813: E/AndroidRuntime(9227):   at android.os.Looper.loop(Looper.java:137)
          10-02 12:49:00.813: E/AndroidRuntime(9227):   at android.app.ActivityThread.main(ActivityThread.java:4448)
          10-02 12:49:00.813: E/AndroidRuntime(9227):   at java.lang.reflect.Method.invokeNative(Native Method)
          10-02 12:49:00.813: E/AndroidRuntime(9227):   at java.lang.reflect.Method.invoke(Method.java:511)
          10-02 12:49:00.813: E/AndroidRuntime(9227):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
          10-02 12:49:00.813: E/AndroidRuntime(9227):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
          10-02 12:49:00.813: E/AndroidRuntime(9227):   at dalvik.system.NativeStart.main(Native Method)
like image 246
Anuranjit Maindola Avatar asked Oct 02 '13 07:10

Anuranjit Maindola


People also ask

What do you mean by null pointer exception?

NullPointerException is a runtime exception in Java that occurs when a variable is accessed which is not pointing to any object and refers to nothing or null. Since the NullPointerException is a runtime exception, it doesn't need to be caught and handled explicitly in application code.

How to troubleshoot Java lang NullPointerException?

In Java, the java. lang. NullPointerException is thrown when a reference variable is accessed (or de-referenced) and is not pointing to any object. This error can be resolved by using a try-catch block or an if-else condition to check if a reference variable is null before dereferencing it.

How to avoid null pointer exception in Java array?

To avoid the NullPointerException, we must ensure that all the objects are initialized properly, before you use them. When we declare a reference variable, we must verify that object is not null, before we request a method or a field from the objects.

How to raise null pointer exception in Java?

NullPointerException is a runtime exception and it is thrown when the application try to use an object reference which has a null value. For example, using a method on a null reference.


1 Answers

I found the error. The problem was that support library requires to have a custom prefix and not android:actionProviderClass . What i was doing wrong that i used android:actionProviderClass instead of customprefix:actionProviderClass

See here: https://developer.android.com/training/basics/actionbar/adding-buttons.html

like image 70
Anuranjit Maindola Avatar answered Sep 19 '22 19:09

Anuranjit Maindola