我正在使用Android SDK中的NotesList示例程序进行试验。我在程序中做了轻微的更改,但是当我安装我的编辑版本时,当我尝试在设备上已经安装原始notes程序时,我在控制台中一直得到消息INSTALL_FAILED_CONFLICTING_PROVIDER。我需要在提供者中更改什么以使其成为唯一的数据库?如果我卸载原来的notes程序,然后安装我编辑过的版本,它就可以正常工作。


当前回答

在我的android设备上,我安装了不同版本的同一款应用。这给了我错误安装失败冲突提供者。 所以我卸载了同一款应用的所有版本。 和尝试

adb install -r /Users/demo-debug-92acfc5.apk

它解决了我的问题。

其他回答

基本上这发生在我身上,当我试图改变应用程序的包名。

在模拟器中,之前安装了相同的应用程序。当我试图在更改包名称后安装应用程序时,它说,权限已经被设备中的旧应用程序使用。

只需卸载应用程序,它就解决了我的问题。

同样,权限名称应该始终是:your.package.name.UNIQUENAME;

例子:

  <provider
        android:name="com.aviary.android.feather.cds.AviaryCdsProvider"
        android:authorities="your.package.name.AviaryCdsProvider"
       />

检查<provider标签下的android:authorities属性


检查您的包名称是否正确

我尝试了很多方法,但都没有找到解决方法。但是这个链接帮助了我……我想详细谈谈……

我正在运行Instrumented测试用例,所以我的应用程序在启动器中不可见…但它是安装的,因此使用相同的内容提供程序。所以,我应该卸载它。所以设置->应用程序管理器->所有下载的应用程序->卸载所有应用程序从您当前的开发包

现在,试着跑……这会有用的……

        need to use android:name="androidx.core.content.contentprovider 
        or android:name="androidx.core.content.provider insteadof 
        android:name="androidx.core.content.fileprovider

        <provider
        android:name="androidx.core.content.FileProvider"
        android:authorities="${applicationId}.contentprovider"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/filepaths" />
    </provider>

就像@Jose L Ugia所说的那样,让当局做出改变。

(您可以在清单中找到提供者(合并清单))

大多数情况下,它会连接到你实现的SDK,所以删除SDK实现行并同步Gradle,然后再次添加实现行并同步Gradle。

实施路线: 实现文件(<您的SDK>)

提供者代码:(你必须在merge-manifest中向下滚动才能找到它)