【发布时间】:2014-07-27 12:06:42
【问题描述】:
07-27 11:29:26.390: E/AndroidRuntime(691): FATAL EXCEPTION: main
07-27 11:29:26.390: E/AndroidRuntime(691): java.lang.NullPointerException
07-27 11:29:26.390: E/AndroidRuntime(691): at com.androidma.voteq.MainActivity.onCreateOptionsMenu(MainActivity.java:271)
07-27 11:29:26.390: E/AndroidRuntime(691): at android.app.Activity.onCreatePanelMenu(Activity.java:2444)
07-27 11:29:26.390: E/AndroidRuntime(691): at android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:225)
07-27 11:29:26.390: E/AndroidRuntime(691): at android.support.v7.app.ActionBarActivity.superOnCreatePanelMenu(ActionBarActivity.java:233)
07-27 11:29:26.390: E/AndroidRuntime(691): at android.support.v7.app.ActionBarActivityDelegateICS.onCreatePanelMenu(ActionBarActivityDelegateICS.java:146)
07-27 11:29:26.390: E/AndroidRuntime(691): at android.support.v7.app.ActionBarActivity.onCreatePanelMenu(ActionBarActivity.java:200)
07-27 11:29:26.390: E/AndroidRuntime(691): at android.support.v7.app.ActionBarActivityDelegateICS$WindowCallbackWrapper.onCreatePanelMenu (ActionBarActivityDelegateICS.java:293)
07-27 11:29:26.390: E/AndroidRuntime(691): at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:388)
当我尝试在操作栏上插入“分享”操作时,我的应用程序崩溃了。
有问题的行是这个
myShareActionProvider.setShareIntent(myIntent);
这个类在我的导入中:
import android.support.v7.app.ActionBarActivity;
我的主要活动课程是这样开始的:
public class MainActivity extends ActionBarActivity {
我的代码:
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
getMenuInflater().inflate(R.menu.action_bar_share_menu, menu);
MenuItem item = menu.findItem(R.id.menu_item_share);
ShareActionProvider myShareActionProvider = (ShareActionProvider) item.getActionProvider();
Intent myIntent = new Intent();
startActivity(myIntent);
myIntent.setAction(Intent.ACTION_SEND);
myIntent.putExtra(Intent.EXTRA_TEXT, "Oylamaya Katil! Google vs. Apple! https://play.google.com/store/apps/details?id=com.google.android.gm&hl=tr");
myIntent.setType("text/plain");
myShareActionProvider.setShareIntent(myIntent);
return true;
}
菜单文件夹中的main.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/menu_item_share"
android:showAsAction="ifRoom"
android:title="Share"
android:actionProviderClass="android.widget.ShareActionProvider" />
</menu>
action manu share munu xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/menu_item_share"
android:showAsAction="ifRoom"
android:title="Share"
android:actionProviderClass="android.widget.ShareActionProvider" />
</menu>
当我使用共享意图代码块时,它将在另一个项目上运行。 我几个小时都无法解决这个问题......
这解决了我的问题:
private ShareActionProvider mShareActionProvider;
public boolean onCreateOptionsMenu( Menu menu) {
getMenuInflater().inflate(R.menu.action_bar_share_menu, menu);
final MenuItem shareItem = menu.findItem(R.id.action_share);
mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(shareItem);
Intent myIntent = new Intent();
myIntent.setAction(Intent.ACTION_SEND);
myIntent.putExtra(Intent.EXTRA_TEXT, "Oylamaya Katil! Google vs. Apple! https://play.google.com/store/apps/details?id=com.google.android.gm&hl=tr");
myIntent.setType("text/plain");
mShareActionProvider.setShareIntent(myIntent);
return true;
}
【问题讨论】:
标签: android eclipse android-intent share