INSTALL_FAILED_CONFLICTING_PROVIDER错误消息 - 但应用具有唯一的提供商权限ID

时间:2015-11-28 02:41:43

标签: java android android-studio

我目前在Android Studio中有一个项目系统,我有许多共享相同项目结构和代码的应用程序。

由于我没有成功完成口味(其他SO问题),我选择了以下系统。

每当我需要更改我的其他应用时,我:

  • 保留 src / main / java 只需替换每个文件中的单个导入行。
  • 删除 src / main /
  • 中的所有其他文件
  • 将共享的 res 目录复制/粘贴到 src / main / res
  • 将项目特定的 res 目录复制/粘贴到 src / main / res
  • 将项目特定的资产目录复制/粘贴到 src / main / assets
  • 将项目特定的 Androidmanifest.xml 目录复制/粘贴到 src / main / Androidmanifest.xml

这实际上有效,只需要两分钟。但是,当我部署我的应用程序时(至少在调试模式下)并且已经安装了另一个应用程序,我收到INSTALL_FAILED_CONFLICTING_PROVIDER错误消息。

现在,这当然可以通过删除旧应用程序来解决,但我希望同时安装所有应用程序。

我不太明白,每个应用程序都使用自己的清单文件进行编译,其中提供程序的定义如下:

<provider
  android:name="android.support.v4.content.FileProvider"
  android:authorities="com.example-app-flavour-1.app.fileprovider"
  android:grantUriPermissions="true"
  android:exported="false">
  <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_filepaths" />
</provider>

即。每个应用 使用唯一权限进行编译

我试过

  • 构建|清洁项目
  • 构建重建项目
  • 文件|使缓存重启无效

我在这里缺少什么?

(Naurally我希望有一天能让Android Studio gradle风格开始工作,但是现在我把注意力转移到了这个,因为它所以关闭完美工作,每次我需要时最小的麻烦切换应用程序)

1 个答案:

答案 0 :(得分:1)

gradle还需要包含此

std::ofstream ofs{path};
auto oldbuf = cout.rdbuf( ofs.rdbuf() );

我把它完全抛弃了