ShareActionProvider 在发布版本中缺少共享图标

ShareActionProvider is missing share icon in release build

我有一个使用 appcompat.v7 ShareActionProvider 的 android 应用程序。当我在设备上 运行 来自 Android Studio 的应用程序时,我看到一个共享图标,我可以共享我的内容。

当我从菜单中 运行 "Generate Singned APK" 并在我的设备上安装 apk 时,我没有看到共享图标,而是看到了我设置的文本。当我点击文本时,分享意图没有开始。

这是我的build.gradle...

android {
compileSdkVersion 22
buildToolsVersion "23.0.0"

defaultConfig {
    applicationId "xxx.xxx.xx"
    minSdkVersion 14

    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
}

buildTypes {
    release {
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt')
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:22.2.0+'
    compile 'com.google.android.gms:play-services:7.0.0'
    compile 'net.hockeyapp.android:HockeySDK:3.5.0'
}

我是否禁用缩小或收缩资源都没有关系。该功能不起作用。 gradle 构建很好,没有错误,应用程序的其余部分 运行 运行良好。例如,我正在使用 v7.Toolbar...

知道为什么 ShareActionProvider 不起作用吗?

此致, 一月

这个问题很老了,但由于我刚遇到这个问题,找不到立即的解决方案,所以我会继续分享我最终发现的答案。解决方案来自 Tanis.7x,在此处对这个单独但相关的问题的回答:

引用Tanis.7x

The problem is that ShareActionProvider is being stripped/obfuscated, but the support library needs it to remain as-is.

Add this line to your proguard configuration, and you should be set:

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

我将那行代码放到了 proguard-rules.pro 文件中,ShareActionProvider 恢复了正常运行。

希望对您有所帮助!