Java 安装\u失败\u冲突\u提供程序错误消息-但应用程序具有唯一的提供程序权限ID

Java 安装\u失败\u冲突\u提供程序错误消息-但应用程序具有唯一的提供程序权限ID,java,android,android-studio,Java,Android,Android Studio,我目前在Android Studio中有一个项目系统,其中有许多应用程序共享相同的项目结构和代码 由于我没有成功地让味道充分发挥作用(其他问题),我选择了以下系统 每当我需要切换到其他应用的on时,我: 保持src/main/java只替换每个文件中的一行导入 删除src/main中的所有其他文件/ 将共享的res目录复制/粘贴到src/main/res 将特定于项目的res目录复制/粘贴到src/main/res 将特定于项目的资产目录复制/粘贴到src/main/assets 将特定于项目

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

由于我没有成功地让味道充分发挥作用(其他问题),我选择了以下系统

每当我需要切换到其他应用的on时,我:

  • 保持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>

i、 e.每个应用程序都是由唯一的权限编译而成的

我已经试过了

  • 建设|清洁项目
  • 构建重建项目
  • 文件|使缓存无效重新启动
我错过了什么


(Naurally我希望Android Studio gradle Flavors有朝一日能发挥作用,但现在我正将注意力转移到这一点上,因为每次我需要切换应用程序时,它都能以最小的麻烦完美地工作)

gradle也需要包含这一点

defaultConfig {
  applicationId "com.example.app"
}

我完全忽略了它

我对“提供者”不太熟悉,软件包呢?每个应用程序都有自己的包名吗?是的,每个应用程序都有自己的包名等。