2013-08-09 3 views
0

У меня возникла проблема при реализации ShareActionProvider ActionBarSherlock. Ja положил все compenentes, но когда я скомпилирую код NullPointException. Ошибка После:ActionBarSherlock ShareActionProvider

08-08 23:06:22.315: E/AndroidRuntime(2286): FATAL EXCEPTION: main 08-08 23:06:22.315: E/AndroidRuntime(2286): java.lang.ClassCastException: com.actionbarsherlock.widget.ShareActionProvider cannot be cast to android.view.ActionProvider 08-08 23:06:22.315: E/AndroidRuntime(2286): at android.view.MenuInflater$MenuState.readItem(MenuInflater.java:359) 08-08 23:06:22.315: E/AndroidRuntime(2286): at android.view.MenuInflater.parseMenu(MenuInflater.java:145) 08-08 23:06:22.315: E/AndroidRuntime(2286): at android.view.MenuInflater.inflate(MenuInflater.java:95) 08-08 23:06:22.315: E/AndroidRuntime(2286): at br.ftsys.churrascalc.MainActivity.onCreateOptionsMenu(MainActivity.java:136)

Мой файл XML в Рез/меню/главная:

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

<item android:id="@+id/share" 
    android:orderInCategory="100" 
    android:title="@string/share" 
    android:showAsAction="ifRoom" 
    android:actionProviderClass="com.actionbarsherlock.widget.ShareActionProvider"/>  

Minha MainActivity:

public class MainActivity extends SherlockActivity{ 

private ShareActionProvider mShareActionProvider; 
. 
. 
. 
. 
@Override 
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) { 

    getSupportMenuInflater().inflate(R.menu.main, menu); 

    mShareActionProvider = (ShareActionProvider) menu.findItem(R.id.share).getActionProvider(); 

    /** Getting the target intent */ 
    Intent intent = getDefaultShareIntent(); 

    /** Setting a share intent */ 
    if (intent != null) 
     mShareActionProvider.setShareIntent(intent); 

    return super.onCreateOptionsMenu(menu); 
} 

/** Returns a share intent */ 
private Intent getDefaultShareIntent() { 

    Intent intent = new Intent(Intent.ACTION_SEND); 
    intent.setType("text/plain"); 
    intent.putExtra(Intent.EXTRA_SUBJECT, "Assunto"); 
    intent.putExtra(Intent.EXTRA_TEXT, "Conteúdo!!!"); 
    return intent; 
} 
} 

Может кто-нибудь мне помочь?

+0

Помогите мне пожалуйста !!! – user2627815

ответ

0

ShareActionProvider Вы используете в коде, являющийся неправильным. Следовательно, исключение класса. Это результат импорта неверного провайдера в ваш класс MainActivity. Просто найдите строку:

import android.widget.ShareActionProvider; 

и заменить:

import com.actionbarsherlock.widget.ShareActionProvider; 

Вот это

Смежные вопросы