我在共享操作提供程序中得到空指针,因为它在应用程序开始时需要一个图像。我以后才能提供。
这是我的密码
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate menu resource file.
getMenuInflater().inflate(R.menu.menu, menu);
// Locate MenuItem with ShareActionProvider
MenuItem item = menu.findItem(R.id.menu_item_share);
// Fetch and store ShareActionProvider
mShareActionProvider = (ShareActionProvider) item.getActionProvider();
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("image/*");
Uri uri = Uri.fromFile(new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM),
getBitmapName()));
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
shareIntent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.mailSubject));
setShareIntent(shareIntent);
return true;
}
// Call to update the share intent
private void setShareIntent(Intent shareIntent) {
if (mShareActionProvider != null) {
mShareActionProvider.setShareIntent(shareIntent);
}
}
最佳答案
嘿Vineet我想你可能需要在你的应用程序中初始化你的图像,然后发送到共享意图。因此,不是发送共享意图,而是在创建时从uri中提取图像,然后使用bm=bitmapfactory.decode resource(getresources(),r.drawable.image);。
不确定这是否有效,但共享意图获得空指针异常的唯一原因是来自不存在或未初始化的映像。
希望这有帮助
道格
关于android - Android ShareAction Provider空指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16317198/