小编Man*_*asV的帖子

在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万
查看次数

使用Volley进行令牌认证

如果我有一个服务器,我使用用户名/密码进行身份验证并获得后续请求的身份验证令牌,那么解决此问题的最佳方法是什么?

该流程应该是这样的: - 启动要求 - 如果我们没有身份验证令牌 - 用得到它的用户名和密码 - 请与身份验证令牌的要求 - 如果请求失败,因为令牌过期,获得新的身份验证令牌与用户名和密码 - 使用新的身份验证令牌重试请求 - 完成

我注意到,排球已经可能有一些可能解决这个问题-身份验证https://android.googlesource.com/platform/frameworks/support/+/4474bc11f64b2b274ca6db5a1e23e8c1d143d5fa/volley/src/com/android/volley/toolbox/Authenticator .java它包含getAuthToken()和invalidateAuthToken()方法,这正是我想要的.但它似乎从未在图书馆中使用过.

android android-volley

17
推荐指数
1
解决办法
2万
查看次数