设置应用程序样式后,在运行应用程序/时出现此错误“ install_failed_conflicting_provider”

问题描述

它完美地工作。由于出现此错误,我现在无法查看pdf但我无法在手机中安装其他版本:

Installation did not succeed. The application Could not be installed: INSTALL_Failed_CONFLICTING_PROVIDER Installation Failed due to: 'null' Retry

推荐代码

应用程序级别的build.gradle文件

    defaultConfig {
    applicationId "com.abc.xyz"
    minSdkVersion 21
    targetSdkVersion 29
    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"}



flavorDimensions "version"
productFlavors {
    appdev {
        dimension "version"
        applicationIdSuffix ".dev"
        versionCode buildVersionCodeDev()
        versionName version_dev

     
    }
    appqa {
        dimension "version"
        applicationIdSuffix ".qa"
        versionCode buildVersionCodeQA()
        versionName version_qa   
    }
    apppro {
        dimension "version"
        applicationIdSuffix ".pro"
        versionCode buildVersionCodePro()
        versionName version_pro
       

    }

}

AndroidManifest.xml

    <provider
        android:name="androidx.core.content.FileProvider"
        android:authorities="com.freshdesk.helpdesk.provider"
        android:exported="false"
        android:grantUriPermissions="true"
        tools:replace="android:authorities">


           <Meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/provider_paths" />
    </provider>

Note:- 我点击了此链接,但仍然面临着同样的问题,即使我从AndroidManifest.xml中删除了提供程序标签,但仍然遇到相同的错误,因此即使在同一设备上也无法安装其他功能 >

Link1

Link2

Link3

解决方法

您的文件提供者权限必须取决于程序包名称。现在,它不是动态的,并且对于您的所有口味都是相同的。您不能有多个应用程序的文件提供者具有相同的authorities值。 使此值取决于applicationId,如下所示:

<provider
    android:name="androidx.core.content.FileProvider"
    android:authorities="${applicationId}.provider"
    android:exported="false"
    android:grantUriPermissions="true"
    tools:replace="android:authorities">

       <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/provider_paths" />
</provider>

请参见documentation供参考:

在此示例中,android:authorities属性指定要用于FileProvider生成的内容URI的URI授权。在此示例中,权限是com.example.myapp.fileprovider。对于您自己的应用程序,请指定一个权限,该权限由应用程序的android:package值组成,并附加字符串“ fileprovider”。要了解有关权限值的更多信息,请参阅主题内容URI和android:authorities属性的文档。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...