【问题标题】:ShareActionProvider is missing share icon in release buildShareActionProvider 在发布版本中缺少共享图标
【发布时间】:2016-04-13 15:49:15
【问题描述】:

我有一个使用 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 不工作吗?

最好的问候, 一月

【问题讨论】:

    标签: android gradle shareactionprovider


    【解决方案1】:

    这个问题已经很老了,但是由于我刚刚遇到这个问题并且无法立即找到解决方案,因此我将继续分享我最终发现的答案。该解决方案来自 Tanis.7x,在此处回答了这个单独但相关的问题:Android Proguard: Release build Force Close

    引用 Tanis.7x

    问题是 ShareActionProvider 被剥离/混淆,但支持库需要它保持原样。

    将此行添加到您的 proguard 配置中,您应该进行设置:

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

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

    希望对您有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多