我正在使用Android SDK中的NotesList示例程序进行试验。我在程序中做了轻微的更改,但是当我安装我的编辑版本时,当我尝试在设备上已经安装原始notes程序时,我在控制台中一直得到消息INSTALL_FAILED_CONFLICTING_PROVIDER。我需要在提供者中更改什么以使其成为唯一的数据库?如果我卸载原来的notes程序,然后安装我编辑过的版本,它就可以正常工作。
当前回答
如果你在Xamarin上,你得到这个错误(可能是因为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 [...]
正如这里提到的,你需要更新Xamarin.Build.Download:
Update the Xamarin.Build.Download Nuget Package to 0.4.12-preview3 On Mac, you may need to check Show pre-release packages in the Add Packages window Close Visual Studio Delete all cached locations of NuGet Packages: On Windows, open Visual Studio but not the solution: Tools -> Option -> Nuget Package Manager -> General -> Clear All Nuget Cache(s) On Mac, wipe the following folders: ~/.local/share/NuGet ~/.nuget/packages packages folder in solution Delete bin/obj folders in solution Load the Solution Restore Nuget Packages for the Solution (should run automatically) Rebuild
其他回答
如果您正在使用Facebook SDK,那么问题可能在于您为Facebook提供商提供的“权限”值。
取代,
<provider
android:name="com.facebook.FacebookContentProvider"
android:authorities="com.facebook.FacebookContentProvider"
android:exported="true" />
与- - - >
<provider
android:name="com.facebook.FacebookContentProvider"
android:authorities="com.facebook.FacebookContentProvider[YOUR_APP_ID]"
android:exported="true" />
您可能需要更改defaultConfig。ApplicationId也在其他答案中建议。
基本上这发生在我身上,当我试图改变应用程序的包名。
在模拟器中,之前安装了相同的应用程序。当我试图在更改包名称后安装应用程序时,它说,权限已经被设备中的旧应用程序使用。
只需卸载应用程序,它就解决了我的问题。
同样,权限名称应该始终是:your.package.name.UNIQUENAME;
例子:
<provider
android:name="com.aviary.android.feather.cds.AviaryCdsProvider"
android:authorities="your.package.name.AviaryCdsProvider"
/>
您可以卸载名称为“com”的软件包。在你运行应用程序之后,你在其中运行应用程序的设备。这对我很有效
解决方案1
在物理设备而不是模拟器上运行应用程序。我遇到了这个问题,我的应用程序没有定义一个内容提供者。
解决方案2
在另一个实例中,我有一个测试应用程序安装匹配相同的applicationId。
为了解决这个问题,我必须运行。/gradlew uA - uA是uninstallAll task的缩写。
你也可以使用Gradle面板,选择导航到app\install\uninstallAll任务
如果使用模拟器,则可以擦除数据
如果你使用Facebook内部应用程序检查供应商标签内AndroidManifest文件,并检查你的项目Id是正确的android:权威
<provider android:name="com.facebook.FacebookContentProvider" android:authorities="com.facebook.app.FacebookContentProvider112623702612345" android:exported="true" />
推荐文章
- 警告:API ' variable . getjavacompile()'已过时,已被' variable . getjavacompileprovider()'取代
- 安装APK时出现错误
- 碎片中的onCreateOptionsMenu
- TextView粗体通过XML文件?
- 如何使线性布局的孩子之间的空间?
- DSL元素android.dataBinding。enabled'已过时,已被'android.buildFeatures.dataBinding'取代
- ConstraintLayout:以编程方式更改约束
- PANIC: AVD系统路径损坏。检查ANDROID_SDK_ROOT值
- 如何生成字符串类型的buildConfigField
- Recyclerview不调用onCreateViewHolder
- Android API 21工具栏填充
- Android L中不支持操作栏导航模式
- 如何在TextView中添加一个子弹符号?
- PreferenceManager getDefaultSharedPreferences在Android Q中已弃用
- 在Android Studio中创建aar文件