相关疑难解决方法(0)

在Gradle中使用构建类型来运行在一台设备上使用ContentProvider的相同应用程序

我已经设置Gradle将包名称后缀添加到我的调试应用程序中,因此我可以使用我正在使用的发行版本并在一部手机上调试版本.我参考了这个:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Types

我的build.gradle文件如下所示:

...
android
{
    ...
    buildTypes
    {
        debug
        {
            packageNameSuffix ".debug"
            versionNameSuffix " debug"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

一切正常,直到我开始在我的应用程序中使用ContentProvider.我明白了:

Failure [INSTALL_FAILED_CONFLICTING_PROVIDER]
Run Code Online (Sandbox Code Playgroud)

我知道这是因为两个应用程序(发布和调试)正在注册相同的ContentProvider权限.

我认为有一种可能来解决这个问题.如果我理解正确,您应该能够指定在构建时使用的不同文件.然后我应该能够将不同的权限放在不同的资源文件中(并从Manifest设置权限作为字符串资源)并告诉Gradle使用不同的资源进行调试构建.那可能吗?如果是,那么关于如何实现这一点的任何提示都会很棒!

或者也许可以使用Gradle直接修改Manifest?有关如何在一台设备上使用ContentProvider运行相同应用程序的任何其他解决方案始终是受欢迎的.

android gradle android-contentprovider android-gradle-plugin

121
推荐指数
8
解决办法
5万
查看次数