android - Google Play服务和 “Duplicate Provider Authority”

标签 android gradle google-play google-play-services

我使用的是Google Play服务7.8,我已更新至最新版本8.4,并且在所有测试设备上一切正常。但是,某些用户(极少数)在尝试安装或更新到最新版本时报告错误Duplicate Provider Authority

在用户的帮助下,我已将其范围缩小到了由Google Play服务引起的情况,但我无法弄清楚它是为什么发生或确切原因。

我的.gradle依赖项是:

dependencies {
    compile 'com.facebook.android:facebook-android-sdk:4.10.0'
    compile ('com.facebook.android:audience-network-sdk:4.10.0') {
        exclude group: 'com.google.android.gms'
    }
    compile 'com.android.support:support-v4:23.1.1'
    compile 'com.google.android.gms:play-services-games:8.4.0'
    compile 'com.google.android.gms:play-services-analytics:8.4.0'
    compile 'com.google.android.gms:play-services-ads:8.4.0'
    compile 'com.google.android.gms:play-services-plus:8.4.0'
    compile 'com.google.android.gms:play-services-gcm:8.4.0'
    compile 'com.google.android.gms:play-services-location:8.4.0'
    compile 'com.android.support:multidex:1.0.1'
    compile fileTree(dir: 'libs', include: ['*.jar'])

    compile 'com.amazon.android:mobile-ads:5.+'
}

运行gradlew android:androidDependencies会产生以下输出
+--- LOCAL: gameanalytics.jar
+--- LOCAL: in-app-purchasing-2.0.61.jar
+--- LOCAL: vungle-publisher-adaptive-id-3.3.3.jar
+--- LOCAL: dagger-1.2.2.jar
+--- LOCAL: nineoldandroids-2.4.0.jar
+--- LOCAL: presage-lib-1.7.2-manual.jar
+--- LOCAL: javax.inject-1.jar
+--- com.android.support:multidex:1.0.1
+--- com.facebook.android:facebook-android-sdk:4.10.0
|    +--- com.android.support:support-v4:23.1.1
|    |    \--- LOCAL: internal_impl-23.1.1.jar
|    \--- com.android.support:cardview-v7:23.1.1
+--- com.facebook.android:audience-network-sdk:4.10.0
|    +--- com.android.support:appcompat-v7:23.1.0
|    |    \--- com.android.support:support-v4:23.1.1
|    |         \--- LOCAL: internal_impl-23.1.1.jar
|    \--- com.android.support:recyclerview-v7:23.1.0
|         \--- com.android.support:support-v4:23.1.1
|              \--- LOCAL: internal_impl-23.1.1.jar
+--- com.android.support:support-v4:23.1.1
|    \--- LOCAL: internal_impl-23.1.1.jar
+--- com.google.android.gms:play-services-games:8.4.0
|    +--- com.google.android.gms:play-services-base:8.4.0
|    |    \--- com.google.android.gms:play-services-basement:8.4.0
|    |         \--- com.android.support:support-v4:23.1.1
|    |              \--- LOCAL: internal_impl-23.1.1.jar
|    \--- com.google.android.gms:play-services-drive:8.4.0
|         \--- com.google.android.gms:play-services-base:8.4.0
|              \--- com.google.android.gms:play-services-basement:8.4.0
|                   \--- com.android.support:support-v4:23.1.1
|                        \--- LOCAL: internal_impl-23.1.1.jar
+--- com.google.android.gms:play-services-analytics:8.4.0
|    \--- com.google.android.gms:play-services-basement:8.4.0
|         \--- com.android.support:support-v4:23.1.1
|              \--- LOCAL: internal_impl-23.1.1.jar
+--- com.google.android.gms:play-services-ads:8.4.0
|    \--- com.google.android.gms:play-services-basement:8.4.0
|         \--- com.android.support:support-v4:23.1.1
|              \--- LOCAL: internal_impl-23.1.1.jar
+--- com.google.android.gms:play-services-plus:8.4.0
|    \--- com.google.android.gms:play-services-base:8.4.0
|         \--- com.google.android.gms:play-services-basement:8.4.0
|              \--- com.android.support:support-v4:23.1.1
|                   \--- LOCAL: internal_impl-23.1.1.jar
+--- com.google.android.gms:play-services-gcm:8.4.0
|    +--- com.google.android.gms:play-services-base:8.4.0
|    |    \--- com.google.android.gms:play-services-basement:8.4.0
|    |         \--- com.android.support:support-v4:23.1.1
|    |              \--- LOCAL: internal_impl-23.1.1.jar
|    \--- com.google.android.gms:play-services-measurement:8.4.0
|         \--- com.google.android.gms:play-services-basement:8.4.0
|              \--- com.android.support:support-v4:23.1.1
|                   \--- LOCAL: internal_impl-23.1.1.jar
\--- com.google.android.gms:play-services-location:8.4.0
     +--- com.google.android.gms:play-services-base:8.4.0
     |    \--- com.google.android.gms:play-services-basement:8.4.0
     |         \--- com.android.support:support-v4:23.1.1
     |              \--- LOCAL: internal_impl-23.1.1.jar
     \--- com.google.android.gms:play-services-maps:8.4.0
          \--- com.google.android.gms:play-services-base:8.4.0
               \--- com.google.android.gms:play-services-basement:8.4.0
                    \--- com.android.support:support-v4:23.1.1
                         \--- LOCAL: internal_impl-23.1.1.jar

最佳答案

据我所知,当已经使用了提供者授权(提供者名称)时,就会发生此错误。如果应用程序的build.gradle文件没有applicationId,则将库包名称用作默认名称。如果尚未从设备中完全删除该应用程序,则会遇到此问题。

我建议以下内容:

  • 更改build.gradle中的applicationId
  • 通过转到“应用程序管理器”,建议您的用户确保该应用程序已被完全删除,如果该应用程序图标被看到并显示为灰色,则将其删除。

  • 请参阅以下答案以获取更多信息:

    android duplicate provider authority on apps that don't have provider

    希望这可以帮助

    关于android - Google Play服务和 “Duplicate Provider Authority”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35579208/

    相关文章:

    java - 如何通过Java访问Dynamics CRM

    android - 我的应用的 Google Play 更新需要发布多少次?

    android - 从 react-native-maps 启动谷歌地图应用程序

    java - Gradle 多项目布局

    android - Map-Fragment (v2) Nullpointer(Lollipop 下的问题?)

    android - 如何将显式 API 模式应用于除 app 模块之外的所有模块?

    cordova - 是否有用于购买模块的 Phonegap 插件?

    android - 如果我使用自己的应用程序内结算,如果我将我的应用程序发布到市场上,我还需要向谷歌支付 30% 的费用吗?

    java - 如何从 recyclerview newsapi 加载 url

    android - Firebase 的云功能 : Sending topic notification to Android device not working