When I debug my app on device, using Eclipse, this is the result, that is what I want:
App image from debug mode
The 'share icon' works fine!
HERE, THE PROBLEM!!!! WHEN I ADD THE APP ON GOOGLE PLAY, AND THEN I INSTALL THE APP FROM IT, THIS IS THE RESULT:
App image after install from Google Play
The 'share icon' doesn't work. It's clickable, but it does nothing. The icon doesn't appear, just the title: "share"
This is the code:
private ShareActionProvider mShareActionProvider;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
// Set up ShareActionProvider's default share intent
MenuItem shareItem = menu.findItem(R.id.action_share);
mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(shareItem);
mShareActionProvider.setShareIntent(getDefaultShareIntent());
return super.onCreateOptionsMenu(menu);
}
private Intent getDefaultShareIntent() {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, getResources().getString(R.string.app_name));
intent.putExtra(Intent.EXTRA_TEXT, getResources().getString(R.string.app_play_address));
return intent;
}
And this is main.xml file:
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_share"
android:title="@string/share"
yourapp:showAsAction="ifRoom"
yourapp:actionProviderClass="android.support.v7.widget.ShareActionProvider" />
</menu>
In styles.xml file:
<resources>
<!--
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="@style/Theme.AppCompat">
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>
styles.xml file in v-11:
<resources>
<!--
Base application theme for API 11+. This theme completely replaces
AppBaseTheme from res/values/styles.xml on API 11+ devices.
-->
<style name="AppBaseTheme" parent="@style/Theme.AppCompat">
<!-- API 11 theme customizations can go here. -->
</style>
styles.xml file in v-14:
<resources>
<!--
Base application theme for API 14+. This theme completely replaces
AppBaseTheme from BOTH res/values/styles.xml and
res/values-v11/styles.xml on API 14+ devices.
-->
<style name="AppBaseTheme" parent="@style/Theme.AppCompat">
<!-- API 14 theme customizations can go here. -->
</style>
and, finally, on manifest.xml:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
Are you using Proguard for your releases?
I do, and had the same problem until I realised the class ShareActionProvider gets mangled by Proguard and thus I had to take it out of Proguard-mangling.
So, in your proguard-project.txt, include the following line:
-keep class android.support.v7.widget.ShareActionProvider { *; }
Do you have the right permissions in your manifest?
http://developer.android.com/guide/topics/security/permissions.html
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With