无法安装,因为提供商名称为dollar_openBracket_applicationId_closeBracket

时间:2017-08-09 06:54:18

标签: android xamarin xamarin.android android-manifest

我得到的错误:

Failure [INSTALL_FAILED_CONFLICTING_PROVIDER: Package couldn't be installed in 
/data/app/com.name.android-1: Can't install because provider name 
dollar_openBracket_applicationId_closeBracket (in package com.name.android) 
is already used by com.name.alpha]

我们有3个版本的应用程序alpha,beta和stable。所有都有不同的捆绑ID。前段时间我可以在同一设备(手机)上安装所有3个没有任何问题。但现在我只能同时安装其中一个。我用Google搜索了,但到目前为止还无法找到解决方案。

3 个答案:

答案 0 :(得分:0)

将这两个软件包更新为以下版本后,一切正常:

Xamarin.Facebook 4.4.0.2
Xamarin.Facebook.Android 4.24.0

答案 1 :(得分:0)

如果收到此错误(可能是因为Firebase.Crashlytics):

INSTALL_FAILED_CONFLICTING_PROVIDER
Package couldn't be installed in [...]
Can't install because provider name dollar_openBracket_applicationId_closeBracket (in package [...]]) is already used by [...]

here所述,您需要更新Xamarin.Build.Download:

  1. 将Xamarin.Build.Download Nuget软件包更新为 0.4.12-preview3
    • 在Mac上,您可能需要在“ 添加软件包”窗口中选中显示预发行版软件包
  2. 关闭Visual Studio
  3. 删除所有NuGet软件包的缓存位置:
    • 在Windows上,打开Visual Studio,但不打开解决方案:
      • 工具->选项-> Nuget软件包管理器->常规->清除所有Nuget缓存
    • 在Mac上,擦除以下文件夹:
      • ~/.local/share/NuGet
      • ~/.nuget/packages
      • 解决方案中的
      • packages文件夹
  4. 删除解决方案中的bin / obj文件夹
  5. 加载解决方案
  6. 为解决方案还原Nuget程序包(应自动运行)
  7. 重建

答案 2 :(得分:0)

我使用Crashlytics软件包,该软件包在AndroidManifest.xml中生成以下重复行:

<provider android:name="com.crashlytics.android.CrashlyticsInitProvider" android:authorities="com.my.app.crashlyticsinitprovider" android:exported="false" android:initOrder="100" />
<provider android:name="com.crashlytics.android.CrashlyticsInitProvider" android:authorities="dollar_openBracket_applicationId_closeBracket" android:exported="false" android:initOrder="100" />

“快速修复” /解决方案,我需要让Fabric / Crashlytics生成正式版APK:

  1. 重建您的Android项目(这将清理Bin / Obj文件夹并构建项目)
  2. 转到..obj/Release/90/lp/(此文件夹包含更多文件夹0, 1, 2, 3, etc.
  3. 使用Crashlytics AndroidManifest.xml文件查找文件夹,如下所示:

enter image description here (您可能可以在此步骤中使用Notepad ++ Find in Files

  1. aapt文件夹中,还有另一个AndroidManifest.xml文件,其内容为:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.crashlytics.android" android:versionCode="1" android:versionName="2.9.4">
    
        <uses-sdk android:minSdkVersion="9" />
        <uses-permission android:name="android.permission.INTERNET" />
    
        <application>
            <provider android:name="com.crashlytics.android.CrashlyticsInitProvider" 
                  android:authorities="dollar_openBracket_applicationId_closeBracket" 
                  android:exported="false"
                  android:initOrder="100" />
        </application>
    
    </manifest>
    
  2. 删除整个<application ... </application>元素并保存文件。

  3. BuildArchive您的Android项目注意:请勿重建)
  4. 成功,dollar_openBracket_applicationId_closeBracket行消失了。