gpt4 book ai didi

Android ShareActionProvider 在 Debug模式下工作,但在真实设备上不工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:41:12 25 4
gpt4 key购买 nike

当我使用 Eclipse 在设备上调试我的应用程序时,这就是我想要的结果:

App image from debug mode

“分享图标”工作正常!

问题来了!!!!当我在 Google Play 上添加该应用程序,然后从中安装该应用程序时,结果如下:

App image after install from Google Play

“分享图标”不起作用。它是可点击的,但它什么都不做。图标没有出现,只有标题:“分享”

这是代码:

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;
}

这是 main.xml 文件:

<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>

在 styles.xml 文件中:

<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>

v-11 中的 styles.xml 文件:

<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>

v-14 中的 styles.xml 文件:

<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>

最后,在 manifest.xml 上:

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >

最佳答案

您的版本是否使用 Proguard?

我有,并且遇到了同样的问题,直到我意识到 ShareActionProvider 类被 Proguard 破坏了,因此我不得不将它从 Proguard 破坏中移除。

因此,在您的 proguard-project.txt 中,包含以下行:

-keep class android.support.v7.widget.ShareActionProvider { *; }

关于Android ShareActionProvider 在 Debug模式下工作,但在真实设备上不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19498489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com